If you are just trying to avoid using declarative xml to create the column, you can write C# code to create the column. But to deploy to your site through a wsp, it will still need to be packaged in a feature.
You could write a console application that runs on the server and executes the code to create the column. However, this seems like more of a maintainability headache than creating a feature.
Either way, the code would look something like this:
using(SPSite site = new SPSite("url-of-your-site"))
{
using(SPWeb web = site.RootWeb)
{
web.Fields.Add("ColumnName", SPFieldType.Text, true);
}
}
You could also create a Powershell script to add the column. Something like:
$site = Get-SPSite "your-site-url"
$web = $site.RootWeb
$column = '<Field Name=...' +
'ID=...' +
etc. +
'></Field>'
$web.Fields.AddFieldAsXml($column)
But, really features aren't that bad once you accept that feature activation is the way to programmatically add elements to a SharePoint site.