First big project, how do I choose a language?

Soldato
Joined
7 Mar 2011
Posts
6,859
Location
Oldham, Lancashire
Not asking for what language, id like to go through the process of choosing, if that makes sense?

I've learnt the basics of programming years ago but never had an idea for a meaty project to do until now. At work I was asked to build a back-up for a trailer yard management system in Excel. Finished it yesterday and after 14 pages of VBA I have a pretty useable system. But without the constraint to Excel I know I can do so much more.

I will need to base it off a database, and (eventually) have a desktop and Android client. I have some experience with SQL but only from the command line, so that's something new to me.

The end goal is to replace Isotrak's C3 (not many here will know what that is, I know). I use this software at work. Its a huuuuuuge project but I've never been this excited about a project. Maybe that's sad, who gets excited about logistics software?

The whole thing would be modular, partly so I can watch my work grow without going backwards, but mostly because I think that will make aint features I didn't think of easier.
 
Depends what you know already really.

It's quite a big ask just to get in and start writing a system like that while also ensuring the code is split properly and easily maintainable. But then if you have a while to write it, lots of reading and take your time and it should be fine.

I would go for C# Web API myself, then maybe KnockoutJS to talk to that API for the web project, but that's because I work with C# all day every day. I'm sure most other languages could come out with the same result and same performance in the end.
 
If you want to build a mobile app then you 100% will need to create an API for it to consume. Personally, my day job is to write APIs in C# on Azure Table storage, so can recommend that if you need to work on a massive scale, however it's by no means the cheapest solution.

You've not said what language you'll be working in, but if I were you I'd start with a small datastore (probably mySQL) and structure the codebase so you can easily swap out your data store at any point in the future for something faster/more scalable. Just make 100% sure you keep business logic and the DAL completely separate.
 
I've dabbled in java, C++, python and VBA. I don't mind switching language though.

I'm leaning towards java, less worry over server platform and tbh my little network can run netbeans ok but visual studio struggles
 
A "managed" language is probably a good idea. Anything from the Java / C# / Python era will be reasonably coherent and well supported in terms of tools and libraries.

Broadly speaking, which language you choose won't matter. Some will fit how you think better than others, but it's hard to guess in advance which that will be. Choosing the wrong one won't necessarily break the project either, it'll just take longer.

I'm not sure planning to continually add features without ever going backwards will work out, but it's certainly worth a go. I tend to write a rough sketch of a program, then when it collapses under the weight of accumulated complexity throw it away and rewrite. It's really hard to get the design decisions right on the first try, but by the Nth iteration I've learned enough about the problem domain that most of it fits together neatly.
 
One downside to Java is its quite slow.

No, it isn't, and hasn't been for a long time. It's on a par with C#, unless you are getting down to millisecond optimisation or require real time certainty the "speed" of Java is not an issue most developers are required to consider.

If you are serious on developing an app consider the costs, developing on a .NET stack is expensive. There are plenty of free or open source resources available to experiment with, such as Java and PHP.

New programmers are spoiled now with the amount of info freely available to them through the internet and youtube. Granted it's not always best practice but it beats how I learnt C, from a book ;)
 
Speed isn't really factor anyway. I'm not selling it or anything.

Is a giant learning experience. Something to work on and yard/fleet management is something I have a lot of experience in.
 
.Net development isn't expensive any more. If anything, MS have made it more accessible.

Yes most definitely. Free and open source now for the latest version. Choose your database type, OS type etc. I am a convert :D.

Desktop and android client? Can kill two birds with one stone by using Xamarin there (again .net and C#).

I think the project sounds exciting and fun.
 
Back
Top Bottom