Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Whats the best programming language for me?

Options
  • 17-04-2008 5:30pm
    #1
    Registered Users Posts: 990 ✭✭✭


    Hi all.

    I have no experience in programming, and am looking for your help in deciding which I should learn. I work in a manufacturing plant and am an engineer responsible for planning the warehouse side of our process. I want to develop a program/database/something that will do the following:
    1. Compare ranges of data
    2. Carry out some simply calculations & statistical analysis on that info
    3. If possible plog some graphs/charts based on the data.
    4. The data will be changing on an on going basis, and will need to be easily accessed and edited (by certain users!).
    5. I would prefer an interface that would be web based (on our internal network or on sharepoint)
    I may think of other criteria, and if I do I will add them.

    I appreciate all input/advice.

    Thanks in advance

    Rosboy


Comments

  • Subscribers Posts: 4,076 ✭✭✭IRLConor


    Pretty much every mainstream language/platform can do what you want. I'd say there are other factors you need to base your choice on:
    • If you get stuck, who are you going to turn to? What languages/platforms are they most familiar with?
    • When you leave your job, who's going to replace you? If they have to be hired then don't pick a language/platform where there's a shortage of people.
    • When you're on holidays, who's going to cover your work?

    Personally, if the software is not performance/mission critical, I'd pick a "forgiving" language like PHP, Python or Perl with MySQL and Apache for the database and web server. The communities for those are all pretty helpful, there's plenty of documentation and the software is free.

    Your other option is to grow something off Access, Excel and VB. I have very little knowledge about that kind of stuff. I have no idea how you'd work a web interface off that but I'm sure there's a way.


  • Registered Users Posts: 990 ✭✭✭rosboy


    IRLConor wrote: »
    Pretty much every mainstream language/platform can do what you want. I'd say there are other factors you need to base your choice on:
    • If you get stuck, who are you going to turn to? What languages/platforms are they most familiar with?
    • When you leave your job, who's going to replace you? If they have to be hired then don't pick a language/platform where there's a shortage of people.
    • When you're on holidays, who's going to cover your work?
    Personally, if the software is not performance/mission critical, I'd pick a "forgiving" language like PHP, Python or Perl with MySQL and Apache for the database and web server. The communities for those are all pretty helpful, there's plenty of documentation and the software is free.

    Your other option is to grow something off Access, Excel and VB. I have very little knowledge about that kind of stuff. I have no idea how you'd work a web interface off that but I'm sure there's a way.

    Thanks for the help IRLConor. To answer your questions:
    If you get stuck, who are you going to turn to? What languages/platforms are they most familiar with?

    I have no programming experience and plan to teach myself. I will hopefully learn through books, and perhaps some online tutorials. If I have problems, I will probably try online forums/communities to see if I can resolve them.
    When you leave your job, who's going to replace you? If they have to be hired then don't pick a language/platform where there's a shortage of people.

    I would hope that once the program is up an running there would not be a great need for programming knowledge. Is this very naive?:o. I would hope to anticipate that once I set up the program, I will then hand it off to someone else for management/updating. I'm more projects based in my role than operational....thankfully:p
    When you're on holidays, who's going to cover your work?

    Pretty much the same as the answer above;)

    I'm going to do a little research into PHP, Python or Perl with MySQL and Apache now.

    Thanks for the suggestions.


  • Registered Users Posts: 9,557 ✭✭✭DublinWriter


    rosboy wrote: »
    I would hope that once the program is up an running there would not be a great need for programming knowledge. Is this very naive?
    Yes! All applications go through what's known as a life-cycle.

    After you initially implement the application, business rules and conditions may change forcing you to re-write sections of the program.

    Unless you really want and would like to go down the road of programming, then stay away from doing something like this.

    These days, the question you should be asking is what is the development environment I want to do this in, rather than what language. For example, when you're developing web apps in Microsoft Visual Studio, you could happily have VB .NET code, C# code and ASP directive code sitting in the one application.

    Unfortunately, there's no RAD (Rapid Application Development) or 4GL web development solution around these days.

    If you're a complete newbie to programming then I'd advise you write your first couple of apps in a non-web environment just so you get comfortable with the syntax of your chosen language.


  • Registered Users Posts: 990 ✭✭✭rosboy


    Thanks DublinWriter. Maybe I was a little liberal with my comments in my previous posts. I know that there will be changes as time goes by. My hope would be that if designed properly, changes would be minimal (changes to the code that is, the database will need continuous management). I work for a very large multinational, and the are a lot of bright engineers working with me that I would hope to pass the project over to. I would of course have to train them and would be involved from time to time if problems occured or large changes were required.

    There is also a massive programming/IT department that, if push came to shove may be able to lend some expereince (informally). And that will beg the question "If there is a massive programming/IT department why are you programming?". The answer is that if we wanted them to set up something like this it would take close to 2 years to get it started due to bureaucracy....and that is no exagaration! The IT department is spread accross several buildings in several countries:)
    If you're a complete newbie to programming then I'd advise you write your first couple of apps in a non-web environment just so you get comfortable with the syntax of your chosen language.

    Yes I'm a complete newbie. So unfortunately this might as well have been in C++:
    when you're developing web apps in Microsoft Visual Studio, you could happily have VB .NET code, C# code and ASP directive code sitting in the one application.

    :D

    I'm just looking for an idea of where to start. I have looked at Microsoft Visual Studio and it has a daunting range of options in it (VB .NET code, C# code and ASP like you mentioned and a lot more). On IRLConors recommendation I'm going to start looking at Python and PHP and see which looks right for me. If you have any suggestion DublinWriter I'd gladly accept them....althought you might have to talk out your crayons to explain it to me:)


  • Subscribers Posts: 4,076 ✭✭✭IRLConor


    rosboy wrote: »
    Thanks DublinWriter. Maybe I was a little liberal with my comments in my previous posts. I know that there will be changes as time goes by. My hope would be that if designed properly, changes would be minimal (changes to the code that is, the database will need continuous management). I work for a very large multinational, and the are a lot of bright engineers working with me that I would hope to pass the project over to. I would of course have to train them and would be involved from time to time if problems occured or large changes were required.

    If you're lucky, this will be the case. Unfortunately software projects tend to be tricky to scope and feature creep is always a risk. Once people start to use the system they'll find loads of bugs and request loads of features. Managing that response is difficult enough for professional software developers so it would probably be worth your while getting agreement on the exact scope of the project from your management before you begin. Budget time after launch for fixing the bugs. Even the best software developers make mistakes in their scheduling.

    You will need to budget time for:
    1. Design & Specification - Get management agreement if possible, it saves on arguments afterwards!
    2. Coding - Be careful of ambitious schedules here, you may find that some parts are trickier than you expected.
    3. Testing - Don't skimp here. Get one or more users to try it out before you release it.
    4. Documentation - You'll need to do this as much for yourself as for anyone else. Documentation is what saves you from being pulled out of bed at ungodly hours or being called on holidays when something breaks.
    5. Release/Deployment - It doesn't always go to plan, make sure you can back out if you hit a major "show stopper" problem.
    6. Bug fixing - Budget time for this but don't be afraid to refuse to fix non-essential bugs if your other job requirements demand it.

    The exact ordering and method of covering all of the above is an area of huge debate and research in the software industry but you don't need to worry about most of that. Just make sure you just don't dive into the coding and release it as soon as it looks right.
    rosboy wrote: »
    There is also a massive programming/IT department that, if push came to shove may be able to lend some expereince (informally). And that will beg the question "If there is a massive programming/IT department why are you programming?". The answer is that if we wanted them to set up something like this it would take close to 2 years to get it started due to bureaucracy....and that is no exagaration! The IT department is spread accross several buildings in several countries:)

    Find out where their major competencies lie. If they're an all-Microsoft shop then my suggestions above will probably mean they'd be less likely to be able to help. Likewise, if they're big into LAMP or J2EE then a solution built with Microsoft technologies could be a harder solution.

    It's kinda what I was trying to get at above. When weighing up your options, account for your company's technology preferences.

    The following books may be useful for helping you learn to program:
    • How to Think Like a (Python) Programmer (Free)
    • Learning Perl by Randall Schwartz and Tom Christianson (a.k.a. The Llama Book. If you have trouble finding it and you're near Dublin PM me and I can lend you my copy.)


  • Advertisement
  • Registered Users Posts: 990 ✭✭✭rosboy


    WOW!

    Thanks a million for your very indepth but straight forward advice!

    I'm going to follow your advice. I'll report back when I have chosen a program and started my project to let you know how I'm getting on.


  • Registered Users Posts: 995 ✭✭✭cousin_borat


    What exactly do you want the system to do?

    If its more advanced Warehouse stuff like Wave Picking, etc then there are open source programmes that can do that already.

    Are you going to keep the Inventory Item codes on your database? How are you going to keep this in Synch with the Master records on the main system?


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    ^^ What cousin_borat said. Really you need some kind of business requirements definition which is a document that explains what the 'system' is required to do. Once you have that you'll be in a much better place to decide what technology to use.


  • Closed Accounts Posts: 12,382 ✭✭✭✭AARRRGH


    PHP.

    A really simple, flexible language.


Advertisement