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

most efficient languages for different programming scenarios

Options
  • 22-05-2015 1:25am
    #1
    Registered Users Posts: 476 ✭✭


    im looking for a bit of guidance on the best languages i should learn for certain scenarios. I prefer to learn something completely in full e.g at the end im satisifed i can do anything on it and have all necessary languages under my belt, any corrections/ constructive criticism would be appreciated. I understand that opinions may be subjective but all are welcomed.

    1)Web development
    front end
    a)HTML,XHTML,XML - have knowledge of HTML but should one bet concentrated on more so?
    b)CSS/SCSS/SASS/SUSY - which one is best to go for
    c)Javascript-JQuery
    Back end
    a) Ruby on Rails/PHP - unsure of which one is better/differences
    b) AJAX/ASP
    c) SQL
    additional
    not much knowledge on these but read they may be userful:
    Perl, Python, VisualBasic

    2)app development
    is it simply just:-
    android = Java
    IOS - objective C
    any cross platform languages which would be strong?

    3)addition questions
    a) C against C++: which one should be taken and perfected?
    b) C# against C/C++
    c) As time goes on I hope to get into Web development, app development and game development. I have previously made good progress on android app development but stopped. Restarting the learning this month and shoud i take apps/web/games first and cover in detail?
    d) what is the potential of programming programs, i understand it may sound stupid, but web/app/game they all have an obvious goal, if C languages learned what potential could it hold for an entrepreneur?
    e) If i wish to enter the sector of computer games, what languages/programming languages needed? i dont mean a GTA game, just lets say a little addicting game running of flash/unity or whatever else.

    Thank you in advance


«1

Comments

  • Registered Users Posts: 1,275 ✭✭✭bpmurray


    RoRo979 wrote: »
    1)Web development
    front end
    a)HTML,XHTML,XML - have knowledge of HTML but should one bet concentrated on more so?
    There isn't a huge difference between HTML and XHTML, but I haven't seen much XML for a while. HTML is definitely the #1 but I'd make sure to be aware of the nuances of the different DTDs for XHTML.
    RoRo979 wrote: »
    b)CSS/SCSS/SASS/SUSY - which one is best to go for
    It's all translated back to CSS so that's absolutely essential. After that I suppose LESS and Sass are most popular although, frankly, I've never seen the advantages.
    RoRo979 wrote: »
    c)Javascript-JQuery
    Plain old Javascript is really important - it's amazing the number of folk who fail interviews because they can't think of how to do stuff using JS, having locked themselves into one particular framework. That said, JQuery is important, including JQuery-UI and JQuery-mobile. Also important are Bootstrap and AngularJS and any number of other specialist libraries.
    Back end
    a) Ruby on Rails/PHP - unsure of which one is better/differences
    b) AJAX/ASP
    c) SQL
    I'd go for (in order):
    a) Java, including Swing and JSF with JSP
    b) node.js
    c) C#, including MVC with ASP
    d) Ruby (a prerequisite for Ruby on Rails) and/or Python
    additional
    not much knowledge on these but read they may be userful:
    Perl, Python, VisualBasic

    2)app development
    is it simply just:-
    android = Java
    IOS - objective C
    any cross platform languages which would be strong?
    By "app" I presume you mean "mobile". Don't forget the hybrid environments - Apache Cordova and the variants (Adobe's Phonegap, IBM's Worklight, etc.). The reality is that many solutions can be created for multiple platforms using these in a fraction of the time it takes to create a native app for one platform.
    3)addition questions
    a) C against C++: which one should be taken and perfected?
    This is the old misunderstanding: C++ is NOT C! If you're working on embedded stuff or situations where you have limited resources, C is a definitely a requirement. C++ requires much more work to make as small, although it can be done. For perfection of either it takes many years!
    b) C# against C/C++
    WTF?!?!? Apples != oranges
    C# is Microsoft's answer to Java and is completely unrelated to C (apart from the obvious ancestry thing). This should really be phrased as "C# against Java"
    c) As time goes on I hope to get into Web development, app development and game development. I have previously made good progress on android app development but stopped. Restarting the learning this month and shoud i take apps/web/games first and cover in detail?
    d) what is the potential of programming programs, i understand it may sound stupid, but web/app/game they all have an obvious goal, if C languages learned what potential could it hold for an entrepreneur?
    e) If i wish to enter the sector of computer games, what languages/programming languages needed? i dont mean a GTA game, just lets say a little addicting game running of flash/unity or whatever else.
    Unity is a good place to start - stay away from Flash.
    Thank you in advance

    I think your heart is in the right place but you need to adjust your head. Creating a game may be good motivation to learn a technology, but it's definitely not where you should start. You first need the pieces - there are so many questions you need to answer:
    If your game needs a backend, what kind? How do you connect? (last year it was SOA, this year it's REST, next year it'll probably be MQTT). For the front end, how do you do motion? Do you write your own physics engine? What's a physics engine? What about surfaces and motion? How's your matrix multiplication? What's your story board? How do you do graphics? Can you draw?
    First you need to think about the fundamentals - can you program? That's not a question about programming languages but rather one of problem solving. Think about how you prove that your solution is correct. Something you completely missed is the whole idea of good engineering practices - for example, read up on Test-driven development since that's one thing that will save you so much time it's shocking.

    Anyway, good luck with this!


  • Registered Users Posts: 2,655 ✭✭✭draiochtanois


    This post has been deleted.


  • Registered Users Posts: 476 ✭✭RoRo979


    Luckily enough i actually am good at problem-solving and am a very logical thinker. When I was learning before started with HTML and CSS and found they were slow, but once I got started with Java the challenges,self-actualisation kicked in and i loved it. I plan on submersing myself in programming knowledge from next month onwards but just want to make sure i am learning the right things in the right order e.g if i want to make an app first learning HTML,CSS would be pointless or instead of learning CSS then adapting to SASS/SCSS mayeb would be wiser to just start on them.

    As for game deveopment, it is my weakest are no doubt about it, I think it would be wisest for for me to take that area last, however as for engines I did some research into Havok's "Project anarchy" and found it useful. My college course will bring me down the game end of programming so I will leave that to them to guide me. Websites and Mobile Apps are where my main interest is simple due to good potential.

    so just to ensure im on the right track:-
    Web development
    I will learn:-
    HTML and move onto XHTML then
    CSS/SCSS/SASS do further research and fin which is best
    Javascript core then spread out into JQuery, Bootstrap, AngularJS and additional research on other beneficial ones.

    as for backend:
    I will learn as you say is best:
    as for the last part Ruby V python. in your personal experience is one better than the other, i get the feeling ruby is more specialised while python could be used for me things but thats an uneducated assumption.

    PHP + Perl: out of matter of interest why did you not mention these 2, I always see lots of talk about PHP.

    App development
    JAVA will be learned regardless so I will have android covered. I do not wish to learn objective C/swift just for IOS, I did some research and Cordova looks like what I should use, any major disadvantages in using this inseatd of native Apps?


  • Closed Accounts Posts: 4,763 ✭✭✭Fenster


    bpmurray wrote: »
    It's all translated back to CSS so that's absolutely essential. After that I suppose LESS and Sass are most popular although, frankly, I've never seen the advantages.

    You clearly aren't frontend. :pSass and LESS are preprocessors for CSS that allows you to utilize mixed indexed and associative arrays, variables, functions, functions with further CSS called mixins. Well-applied Sass can lead to a dramatic reduction in the amount of code you need to write, while maintaining high readability.

    While a lot of novices will stick to straight CSS, Sass is a workhorse of professional frontend development-everyone all the way up to Google and Mozilla use it.


  • Closed Accounts Posts: 9,700 ✭✭✭tricky D


    RoRo979 wrote: »
    Web development
    I will learn:-
    HTML and move onto XHTML then

    Any reason not to go straight to HTML5?

    Previous versions might be worth having a look at but they don't follow current principles of separating content (HTMLx) and presentation (CSSx); XHTML provided a sort of convergence with XML; and HTML5 is where it's at now for loads of reasons.


  • Advertisement
  • Registered Users Posts: 11,977 ✭✭✭✭Giblet


    Ignore XHTML completely, pretend it never existed. HTML5 only.


  • Registered Users Posts: 1,275 ✭✭✭bpmurray


    Giblet wrote: »
    Ignore XHTML completely, pretend it never existed. HTML5 only.

    +1


  • Registered Users Posts: 1,275 ✭✭✭bpmurray


    Fenster wrote: »
    You clearly aren't frontend. :pSass and LESS are preprocessors for CSS that allows you to utilize mixed indexed and associative arrays, variables, functions, functions with further CSS called mixins. Well-applied Sass can lead to a dramatic reduction in the amount of code you need to write, while maintaining high readability.

    While a lot of novices will stick to straight CSS, Sass is a workhorse of professional frontend development-everyone all the way up to Google and Mozilla use it.

    I suppose not much of a frontend - only about 20m end users, although that's dwarfed by the 100m+ backend consumers. :cool:

    My point was that CSS is what all this stuff ultimately becomes, so it's critical to understand that thoroughly before being caught up in the Sass/Sccs stuff. One major blocker to their use is that there is no single cross-platform solution with a single non-viral licence, which means that the legal folk are unhappy with them. Unfortunately, that's something that you also have to consider in the corporate world.


  • Closed Accounts Posts: 2,103 ✭✭✭Tiddlypeeps


    You can tick a lot of boxes on your list off by learning C++. It runs on both Android and iOS, so can be used for app development (I don't want to mislead you, most companies that do native development use both objective-c and java for these). If games are your end goal then it's a great language to have because it's commonly used across the board, from 2D mobile stuff all the way up to the big AAA titles.

    If you can master C++ pretty much any langue after wards is a piece of cake, mostly because it's one of the harder languages to master, which is also a downside.

    The games stuff these days is much easier to get into than it used to be. A lot of engines handle a lot of the difficult stuff for you, you almost never have to touch openGL or the base rendering engine anymore and the same for physics etc. While it's good to eventually gain decent understanding of all those things it's not a necessary requirement upfront. If you go the C++ route then something like Cocos2D-x would be good to start messing around with. It operates a lot like flash on the surface, so it's very easy to get into and start getting things moving around without needing to fully understand a lot of concepts or even having a full understanding of C++, but it's also robust enough that when you do want to start messing around with bigger things it can handle it.


  • Closed Accounts Posts: 4,763 ✭✭✭Fenster


    bpmurray wrote: »
    I suppose not much of a frontend - only about 20m end users, although that's dwarfed by the 100m+ backend consumers. :cool:

    My point was that CSS is what all this stuff ultimately becomes, so it's critical to understand that thoroughly before being caught up in the Sass/Sccs stuff. One major blocker to their use is that there is no single cross-platform solution with a single non-viral licence, which means that the legal folk are unhappy with them. Unfortunately, that's something that you also have to consider in the corporate world.

    Square peg, round hole with licenses and legal. I've already run into this from the other side. IMO, it would make more sense if everyone just accepted the bloody licenses without feeling a reflexive corporate need to fight them.


  • Advertisement
  • Registered Users Posts: 476 ✭✭RoRo979


    Ill stick to just HTML5 so, i remember reading somewhere that xhtml was brought it to give more flexibility or seomthing similar so i though it would have been powerful. I dont mind a steep learning curve, i actually prefer it, its just at the end i want to be satisfied knowing that the languages i have are the best for what I want to do, assuming no new strong ones increase in popularity.

    so for Mobile Application development what is truly the best way, taking all factors into consideration, so i assume native apps will run best and is thus the best way but apart from this, C,C++,Cordova??
    This is the old misunderstanding: C++ is NOT C! If you're working on embedded stuff or situations where you have limited resources, C is a definitely a requirement. C++ requires much more work to make as small, although it can be done. For perfection of either it takes many years!
    previous user stated that C would be preferable over C++,does this matter for app dev?
    One major blocker to their use is that there is no single cross-platform solution with a single non-viral licence, which means that the legal folk are unhappy with them. Unfortunately, that's something that you also have to consider in the corporate world.

    apologies but i dont understand what you mean? are you saying a website i develop for commercial purposes with this language has legal issues?


  • Registered Users Posts: 2,018 ✭✭✭Colonel Panic


    That list should keep you busy for a decade or two.


  • Registered Users Posts: 11,977 ✭✭✭✭Giblet


    Fenster wrote: »
    Square peg, round hole with licenses and legal. I've already run into this from the other side. IMO, it would make more sense if everyone just accepted the bloody licenses without feeling a reflexive corporate need to fight them.

    Ah now, I can't just be accepting GPL willy nilly! I just don't use GPL'd software. Otherwise I'd have to open source my companies software! For personal projects for fun, yeah why not, but GPL is pretty crappy in a lot of respects.


  • Closed Accounts Posts: 2,103 ✭✭✭Tiddlypeeps


    RoRo979 wrote: »
    so for Mobile Application development what is truly the best way, taking all factors into consideration, so i assume native apps will run best and is thus the best way but apart from this, C,C++,Cordova??

    There is no one best way. It depends on what you want to do.

    If you are targeting just Android then Java is the way to go. For just iOS it would be Objective-C. If you want to develop a single solution for both (which isn't always the best approach) you would use C++.

    If it's mobile apps you want to move into then in the short term I would recommend picking one platform and specialising in it. Most companies will have an iOS and Android team so becoming a jack of all trades will just make you a weak candidate for both where as in the same time frame you could become a strong candidate in one or the other.


  • Closed Accounts Posts: 4,763 ✭✭✭Fenster


    Giblet wrote: »
    Ah now, I can't just be accepting GPL willy nilly! I just don't use GPL'd software. Otherwise I'd have to open source my companies software! For personal projects for fun, yeah why not, but GPL is pretty crappy in a lot of respects.

    I don't think you're wrong any more than I am, because it all comes down to what you want to do and how you want to do it-I prefer the GPL and strategize for it while you do the contrary-but we're getting beyond the scope of the thread. :)


  • Registered Users Posts: 1,275 ✭✭✭bpmurray


    RoRo979 wrote: »
    so for Mobile Application development what is truly the best way, taking all factors into consideration, so i assume native apps will run best and is thus the best way but apart from this, C,C++,Cordova??
    For mobile, unless there are strong reasons (usually for games) to use native stuff, I'd go for Cordova. Otherwise it's Java and Objective C (or C++ for Windows).
    previous user stated that C would be preferable over C++,does this matter for app dev?
    "app"? You mean developing applications or mobile apps? C++ has more libraries, etc. to help with developing applications, but C can be made tighter, smaller.
    apologies but i dont understand what you mean? are you saying a website i develop for commercial purposes with this language has legal issues?
    The corporates are very strict about the available licences, e.g. they would never allow GPL, although Apache is considered OK. If people use multiople platforms to develop, they'll need a toolset for each, so the lawyers prefer that it's he same tool everywhere, e.g. Eclipse, rather than platform-specific tools which each have their own licence. If the website you develop uses a library that is licensed under GPL, then your entire work must be made available as Open Source, i.e. for free. If you're happy with that, then that's fine; if not, use a different library.


  • Registered Users Posts: 476 ✭✭RoRo979


    apologies when i say app i mean mobile application, all this learning will be for myself mainly not for a business, i dont plan on trying to get a programming job with a business for a while i plan on trying to make websites/mobile apps myself and see if it is possible to live off the income it will provide. For this reason i believe it may be better for me to learn cross-platform as by specializing in one i am losing out on a huge market and seeing as I will have no real time constraints i can take as long as needed to develop each website/app


  • Registered Users Posts: 476 ✭✭RoRo979


    I'd go for (in order):
    a) Java, including Swing and JSF with JSP
    b) node.js
    c) C#, including MVC with ASP
    d) Ruby (a prerequisite for Ruby on Rails) and/or Python

    server side scripting is the part of web development which confuses me the most. After doing some research and to start do I only need 1 out of this list- Java,Python,PHP,Ruby.

    would learning another yield any benefit? I will know java anyway so ill have that done well, Ive read many places that PHP is one of the best and most commonly used, Then i read the Ruby is great for it aswell, could someone guide me on this please


  • Registered Users Posts: 476 ✭✭RoRo979


    also seeing as i should not go near XML, does that mean no need to look into AJAX aswell?


  • Registered Users Posts: 1,460 ✭✭✭Anesthetize


    RoRo979 wrote: »
    also seeing as i should not go near XML, does that mean no need to look into AJAX aswell?
    Good knowledge of XML and also JSON are extremely useful. You should definitely not avoid XML as it's used very frequently in applications for configuration files, modelling and the transfer of data. Also keep in mind that AJAX is a collection of different technologies i.e. Javascript, DOM, XML/JSON, HTML.


  • Advertisement
  • Moderators, Society & Culture Moderators Posts: 17,642 Mod ✭✭✭✭Graham


    You're probably better off continuing to learn Java and doing your college course.

    These no point trying to plan out your next 10 years leaning. Popular languages will change, the market will change and your interests will change.


  • Registered Users Posts: 476 ✭✭RoRo979


    Graham wrote: »
    You're probably better off continuing to learn Java and doing your college course.

    pace of college course is much too slow for my liking, I moreso prefer to go off and do my own programming and use the course to ensure im covering all the right areas and in full.

    I am ongoing doing Java and im making good progress, make some basic apps/programs which im happy with.

    When i was learning website development, im not one to learn one laanguage in full, then learn another, although it is probobly i better way doing it that way i prefer to, for example how i did it before: learn some html and make a very basic static site, then learn a bit of CSS and touch it up, few more HTML learning and upgrade it again, then some Javescript and make it a bit interactive, then some more HTML/CSS. I like to learn a few at once which complete the task i wish to achieve and then as my knowledge increases upgrade the website as Go. This is the reason why i wish to know what languages would be best to cover as i will be doing them soon and dont want to be halfway through learning one then fund out there is a better one and have to switch.
    Popular languages will change
    indeed it will but there is strong languages already out which will remain dominant, sure i believe in a few tens of yours robots will be able to do this job better than any human can
    the market will change
    also inevitable but having the right languages under your belt will allow one to adapt easily to the changing market
    and your interests will change
    most definately unlikely, this is the job i wish to have for as long as long as possible, always have even since a young lad. Its potential for making it big,low capital investment, self-actualisation, they all just attract me to it. Hence why im looking to perfect what I learn.


  • Closed Accounts Posts: 781 ✭✭✭Not a NSA agent


    C++, Java, Javascript and HTML5 would be the first few I would focus on. Would provide you with a good basis.


  • Registered Users Posts: 476 ✭✭RoRo979


    C++, Java, Javascript and HTML5 would be the first few I would focus on. Would provide you with a good basis.

    indeed:
    - java
    - C++ or C
    - Python
    - HTML
    - Javascript

    they are the ones i will specialize in, take many years to fully complete but there my core. What im looking for help in is other "minor" ones.

    - MySQL
    - node.js
    - ?
    - ?


  • Closed Accounts Posts: 781 ✭✭✭Not a NSA agent


    RoRo979 wrote: »
    indeed:
    - java
    - C++ or C
    - Python
    - HTML
    - Javascript

    they are the ones i will specialize in, take many years to fully complete but there my core. What im looking for help in is other "minor" ones.

    - MySQL
    - node.js
    - ?
    - ?

    I wouldnt really worry about those yet. When it comes to that kind of stuff you could find you never use most of it again. If you need to store information in a database then look into SQL or whatever but only pick them up if you need to. Better to be decent at Java rather than half assed at Java and SQL and never using SQL (just an example)


  • Registered Users Posts: 2,018 ✭✭✭Colonel Panic


    Learning languages from the point of view of things to tick off a list is a waste of time and not realistic.

    Complete projects, write code in any language you want and learning new tech becomes easy.

    Your whole approach is just so naive!


  • Registered Users Posts: 476 ✭✭RoRo979


    Learning languages from the point of view of things to tick off a list is a waste of time and not realistic.

    Complete projects, write code in any language you want and learning new tech becomes easy.

    Your whole approach is just so naive!

    I dont understand the hostility tbh, i am simply looking for guidance on what language is best to learn for the projects i wish to do. I could go off and fortan/cobol because i read it was once very popular, however there is much better now out. I could go and try and learn haskell and then become demoralized about it because i started in too diffucult a language. I could learn HTML and want to try and make an android app with it.

    This isnt me being lazy and not doing research and hoping you all will give the answers to me, but some concepts i may not understand or may not of even been able to find, hence why i made this thread. I believe mostly everyone on this thread is experienced programmers, so what would take me a while researching to find an answer, someone can just tell me a better answer than what i was looking for. I am simply looking for direction that is all.

    The reason why i picked those languages is purposeful, not so i can boast about how much languages i know and think that gives me an advantage, but they are the building blocks of all languages, so I believe if i have them languages learned reasonable well, learning another will become much easier and quite a fast task. As far as i know the core languages are necessary for my goals:
    Java,HTML,Javascript,Phython - web development
    Java,C++ - Mobile application development.


  • Registered Users Posts: 2,018 ✭✭✭Colonel Panic


    There's no hostility, just telling you what I think. Completing projects, not coming up with some abstract action plan is the way to become a software devopeloper.

    Plus knowing Python or Objective C is only part of the story. There are dozens of concepts and frameworks surrounding application development for any platform that go beyond language.

    I've seen it before. The junior who knows C++ but can't actuallly get anything done.

    So I repeat my advice. Projects, not languages. Just get started and learn from mistakes.


  • Registered Users Posts: 1,833 ✭✭✭Useful.Idiot


    Yep I would say that learning the foundations of one server side language and then getting stuck in building a web app or mobile app from scratch or with a popular app framework would be a good way to go. There's plenty of online guides about the place to help you on your way.

    Java is a good all rounder and if you learn that and did a web app then you could smoothly move on to Android development eventually afterwards. Python can be used for scripting but would be interchangeable with Java in that case of web apps.

    In the process of building an app then you'd pick up all the other necessary stuff (SQL, XML, JavaScript/JQuery) as you go along.


  • Advertisement
  • Closed Accounts Posts: 5,191 ✭✭✭Eugene Norman


    I would suggest you do learn native coding for the specific mobile device you want to target.


Advertisement