Database application freelancer seeking programming language advice
March 13, 2008 2:34 AM Subscribe
I'm planning on starting a database freelancing business. I understand a lot of people prefer Microsoft Access or FileMaker. With the current evolving trend of applications going on the web and add to that my somewhat good experience with PHP, HTML, Javascript and CSS I'm seeking a cross platform efficient application environment. This is why I believe Access and FileMaker are not an option, I'm also more experienced with high level languages than I am with Access or FileMaker.
I am currently looking into alternatives. I have been looking at different frameworks and toolkits. These are generally what I have come up with;
- PHP-GTK (Required GTK+ and PHP)
- Python (With wxPython/pyGTK)
- Perl (Perl/Tk)
All those options and similar and require a toolkit and or an interpreter to be installed on the system to work. I'm looking for a cleaner (and possibly compiled or packaged) applications. So I came across other tools such as;
- Mozilla Gecko (XULRunner)
- Adobe Air
Those seem like the most viable options, however, it would be best if the code was compiled, since each of these applications require a lot of virtual memory. Lastly, I came across boo and mono. I like the idea a lot, however there is still the issue of writing and compiling boo code. I only got introduced to boo yesterday.
I'm very reluctant about getting into Java, C, C++, or C# simply because of the complexity of it compared to the languages above. However, if you have another opinion please feel free to share. I'm open to ideas and criticism.
I'm confused as to what would be my best option here for a cross platform programming language and framework/toolkit (GUI) for creating portable database (and possible Point of Sale) applications for my town's local small businesses. What would you recommend?
I am currently looking into alternatives. I have been looking at different frameworks and toolkits. These are generally what I have come up with;
- PHP-GTK (Required GTK+ and PHP)
- Python (With wxPython/pyGTK)
- Perl (Perl/Tk)
All those options and similar and require a toolkit and or an interpreter to be installed on the system to work. I'm looking for a cleaner (and possibly compiled or packaged) applications. So I came across other tools such as;
- Mozilla Gecko (XULRunner)
- Adobe Air
Those seem like the most viable options, however, it would be best if the code was compiled, since each of these applications require a lot of virtual memory. Lastly, I came across boo and mono. I like the idea a lot, however there is still the issue of writing and compiling boo code. I only got introduced to boo yesterday.
I'm very reluctant about getting into Java, C, C++, or C# simply because of the complexity of it compared to the languages above. However, if you have another opinion please feel free to share. I'm open to ideas and criticism.
I'm confused as to what would be my best option here for a cross platform programming language and framework/toolkit (GUI) for creating portable database (and possible Point of Sale) applications for my town's local small businesses. What would you recommend?
I'm a little puzzled about all of this.
You say you want to develop applications for you town's small businesses; have you spent much time researching this? Are there particular needs within this quite limited marketplace for the kinds of things you want to develop? What makes you think you actually need to develop cross-platform applications for this market? Are a lot of these small businesses running Linux, for example? What existing tools are available for these businesses? Would you save these businesses (and yourself) money by selling and supporting these tools rather than producing bespoke applications yourself?
It sounds a lot like you're interested in developing your skills along a particular avenue and are trying to find a round hole for your round peg. Why not look further afield? How about freelancing over the internet, developing database applications for businesses that have a clearly defined need for bespoke database apps? How about writing some shareware? Try not to make the classic mistake of thinking too much about the tools you want to work with; play with them in your own time, but be realistic about what the market really requires. If you find a genuine need somewhere for a desktop database app, go with Access and VB.Net - don't just go cross-platform because it feels right to you as a platform-neutral developer - do it if because it's a genuine requirement within your market. The ability to get that data back into Access easily when the need arises will probably save a small business a lot of pain a few years down the line.
I started my career trying to write applications for local small businesses. I reluctantly came to the conclusion that it's a largely outmoded activity - most small businesses are far better served by off-the-shelf packages or a generic office suite, provided they have the right training to make use of it. There are niches where specialised software/databases are useful, but you might be surprised by how well these niches are already filled.
I've just spent a whole year developing a PHP/MySQL-based system for a London-based consultancy to facilitate board reviews in FTSE 500 companies - that's not the kind of work you're likely to find in a small town, yet I've still managed to keep my small-town life.
Look further afield; consider shareware or a useful application or service you could sell online; consider sending out a resumé to some agencies in your nearest cities, and also talk to them about which skills are in demand, and which are emerging. There's a lot of demand for the right skillset, but I think your current focus is probably a little narrow.
posted by le morte de bea arthur at 3:05 AM on March 13, 2008 [1 favorite]
You say you want to develop applications for you town's small businesses; have you spent much time researching this? Are there particular needs within this quite limited marketplace for the kinds of things you want to develop? What makes you think you actually need to develop cross-platform applications for this market? Are a lot of these small businesses running Linux, for example? What existing tools are available for these businesses? Would you save these businesses (and yourself) money by selling and supporting these tools rather than producing bespoke applications yourself?
It sounds a lot like you're interested in developing your skills along a particular avenue and are trying to find a round hole for your round peg. Why not look further afield? How about freelancing over the internet, developing database applications for businesses that have a clearly defined need for bespoke database apps? How about writing some shareware? Try not to make the classic mistake of thinking too much about the tools you want to work with; play with them in your own time, but be realistic about what the market really requires. If you find a genuine need somewhere for a desktop database app, go with Access and VB.Net - don't just go cross-platform because it feels right to you as a platform-neutral developer - do it if because it's a genuine requirement within your market. The ability to get that data back into Access easily when the need arises will probably save a small business a lot of pain a few years down the line.
I started my career trying to write applications for local small businesses. I reluctantly came to the conclusion that it's a largely outmoded activity - most small businesses are far better served by off-the-shelf packages or a generic office suite, provided they have the right training to make use of it. There are niches where specialised software/databases are useful, but you might be surprised by how well these niches are already filled.
I've just spent a whole year developing a PHP/MySQL-based system for a London-based consultancy to facilitate board reviews in FTSE 500 companies - that's not the kind of work you're likely to find in a small town, yet I've still managed to keep my small-town life.
Look further afield; consider shareware or a useful application or service you could sell online; consider sending out a resumé to some agencies in your nearest cities, and also talk to them about which skills are in demand, and which are emerging. There's a lot of demand for the right skillset, but I think your current focus is probably a little narrow.
posted by le morte de bea arthur at 3:05 AM on March 13, 2008 [1 favorite]
What's a database freelancing business? I'm not really sure what you're trying to accomplish... what will you be selling?
posted by Leon at 3:29 AM on March 13, 2008
posted by Leon at 3:29 AM on March 13, 2008
Response by poster: @seanyboy:
Thanks, I'll check it out.
@le morte de bea arthur:
Thanks for the in depth advice. There is a general need for local language support, which isn't generally available in mainstream applications. This indeed can be solved with MS Access. You're right about the cross-platform idea. There aren't a lot of businesses that use linux and probably a very small number using Mac OS X. Windows is dominating the small business market here and I believe my approach (general GNU) applications would save businesses overhead software expenses.
You're also absolutely right about me wanting to develop my skills along a particular avenue. I wouldn't say I'm an expert in these languages, but I'm fairly good and could be a whole lot better if I could get my hands dirty on actual projects. I would hope, as you said, to expand these applications and make them available online probably for a fee. I doubt that a MS Access application would sell online as shareware. This is also the reason why I'm trying to steer away from MS Access.
@Leon:
Basically small applications with a backend database, in a general sense of the meaning. These applications will be used for Point of Sale and/or Business Management for small businesses.
posted by mrbloo at 3:49 AM on March 13, 2008
Thanks, I'll check it out.
@le morte de bea arthur:
Thanks for the in depth advice. There is a general need for local language support, which isn't generally available in mainstream applications. This indeed can be solved with MS Access. You're right about the cross-platform idea. There aren't a lot of businesses that use linux and probably a very small number using Mac OS X. Windows is dominating the small business market here and I believe my approach (general GNU) applications would save businesses overhead software expenses.
You're also absolutely right about me wanting to develop my skills along a particular avenue. I wouldn't say I'm an expert in these languages, but I'm fairly good and could be a whole lot better if I could get my hands dirty on actual projects. I would hope, as you said, to expand these applications and make them available online probably for a fee. I doubt that a MS Access application would sell online as shareware. This is also the reason why I'm trying to steer away from MS Access.
@Leon:
Basically small applications with a backend database, in a general sense of the meaning. These applications will be used for Point of Sale and/or Business Management for small businesses.
posted by mrbloo at 3:49 AM on March 13, 2008
I'm not a techie, and I'm not sure exactly what you're trying to do, but it sounds like maybe you are trying to create something like QuickBooks, which already works just fine for most small businesses.
posted by Jacqueline at 3:59 AM on March 13, 2008
posted by Jacqueline at 3:59 AM on March 13, 2008
On the database side, SQLite is cross-platform, sits in a self-contained file and has good driver support in most languages. If you don't care about the db being a single file like Access, then MySQL or PostgreSQL would be better long-term options for performance and flexibility.
posted by yerfatma at 4:34 AM on March 13, 2008
posted by yerfatma at 4:34 AM on March 13, 2008
Stay away from small business clients. Overworked decision makers, no money, no infrastructure, band aid approach to problems. Oh, and their eyes glaze over when you talk technology.
Don't walk, run away from those clients.
posted by mrbugsentry at 6:00 AM on March 13, 2008 [1 favorite]
Don't walk, run away from those clients.
posted by mrbugsentry at 6:00 AM on March 13, 2008 [1 favorite]
Best answer: I do a very limited amount of consulting and have done some custom work for my clients. Before you jump into the point-of-sale pool, make sure that their needs aren't already met by a specialized product in their area. There's a hobby shop chain (whose name escapes me right now) that used a POS app based on Atari ST computers well into the 90s. I always found it charming to see an ST at the front desk.
Your best bet is to start small. My client started out as a web job and has expanded in the few years we've worked together. They keep me on retainer and ask for small things every once in a while. The most recent request was for a custom purchase order tracking system. Yes, they have the accounting package for their industry and yes, it does POs but they don't like how it works and wanted their own.
They tried rolling their own in Access before handing it over to me. I poked around in Access for a while but didn't find it that awesome so I switched it to Filemaker. Filemaker is cross-platform (Win/Mac) and can compile to an executable. It has some weird limitations (the executable can't host multi-users at once). As with Access, there's a big support world for Filemaker developers out there. The scripting language is pretty simple and easy to understand. The most complex thing I've done in it was checking that all vendors on a PO have all the appropriate insurance certs and that they're up to date (and issuing an appropriate warning if not).
If programming languages are your thing, there's RealBasic: it's Windows/Mac/Win cross-platform. It talks databases (native is/was SQLite). I have it and it's pretty nice. There aren't a lot of books about it but the few that exist are pretty good. There are some really good libraries for it too. I have the MonkeyBread Software library and it's really good.
Feel free to contact me if you need more info. I'm pretty sure my email is in my profile.
posted by jdfan at 7:56 AM on March 13, 2008
Your best bet is to start small. My client started out as a web job and has expanded in the few years we've worked together. They keep me on retainer and ask for small things every once in a while. The most recent request was for a custom purchase order tracking system. Yes, they have the accounting package for their industry and yes, it does POs but they don't like how it works and wanted their own.
They tried rolling their own in Access before handing it over to me. I poked around in Access for a while but didn't find it that awesome so I switched it to Filemaker. Filemaker is cross-platform (Win/Mac) and can compile to an executable. It has some weird limitations (the executable can't host multi-users at once). As with Access, there's a big support world for Filemaker developers out there. The scripting language is pretty simple and easy to understand. The most complex thing I've done in it was checking that all vendors on a PO have all the appropriate insurance certs and that they're up to date (and issuing an appropriate warning if not).
If programming languages are your thing, there's RealBasic: it's Windows/Mac/Win cross-platform. It talks databases (native is/was SQLite). I have it and it's pretty nice. There aren't a lot of books about it but the few that exist are pretty good. There are some really good libraries for it too. I have the MonkeyBread Software library and it's really good.
Feel free to contact me if you need more info. I'm pretty sure my email is in my profile.
posted by jdfan at 7:56 AM on March 13, 2008
One more thing: you can get a thingy to compile Access databases to executables. I've seen several apps that are compiled Access databases for sale online.
posted by jdfan at 7:58 AM on March 13, 2008
posted by jdfan at 7:58 AM on March 13, 2008
In my own experience (going from Perl/Tk to C#/.NET), I've found learning C# and the .NET framework to be a lot more enjoyable than dealing with Perl/Tk. For one thing, with the free C# Express versions that MS has made available, I have drag and drop support for creating my interfaces rather than hand-coding and running Perl code to see if I got a control positioned in the correct place on my form. Also with the .NET framework I can use an Access MDB file as a data-store without having to have Access installed on my system (if I remember correctly, it uses the built-into-Windows Jet drivers). If Access isn't for you, there is an SQLite ADO.NET drop-in here (haven't tried this myself).
posted by phrayzee at 9:03 AM on March 13, 2008
posted by phrayzee at 9:03 AM on March 13, 2008
Response by poster: @Jacqueline:
Thanks for that, I'm sure it will be helpful sometime down the road for me.
@yerfatma:
Thanks, I'm sure sqlite would be a perfect utility for my work.
@mrbugsentry:
Haha, they can't be all that bad. It helps to pick your clients. It also helps to know them before hand, this is what is helping the most right now.
@jdfan:
Thank you. That is exactly what I have been looking for. I will definitly be looking into it.
@phrayzee:
That is great too. You're the second to recommend C# so I'll look into it. Thanks.
posted by mrbloo at 12:08 AM on March 15, 2008
Thanks for that, I'm sure it will be helpful sometime down the road for me.
@yerfatma:
Thanks, I'm sure sqlite would be a perfect utility for my work.
@mrbugsentry:
Haha, they can't be all that bad. It helps to pick your clients. It also helps to know them before hand, this is what is helping the most right now.
@jdfan:
Thank you. That is exactly what I have been looking for. I will definitly be looking into it.
@phrayzee:
That is great too. You're the second to recommend C# so I'll look into it. Thanks.
posted by mrbloo at 12:08 AM on March 15, 2008
This thread is closed to new comments.
If you want to drink from the ruby koolaid fountain, you could look at shoes.
posted by seanyboy at 3:03 AM on March 13, 2008