ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

DonationCoder.com Software > Coding Snacks

What language is the best for a new programmer to start with?

<< < (5/11) > >>

CWuestefeld:
If one is thinking portability-compatibility (with Linux, for instance...), I guess one has to go more with... java, python or ruby ??-Armando (January 22, 2008, 02:04 PM)
--- End quote ---

This is one of my pet peeves. Why would you think portability is important? There are vanishingly few pieces of software that can be good on all platforms even if your choice of language, libraries, programming, etc., are all perfect.

Users in 2008 deserve a level of usability that simply can't be achieved by a portable application. Windows, Mac, and the various Linux UIs all have different metaphors. Too, the types of people using all of these platforms differs significantly, with different goals, different skill levels, etc.

The fact that something can run on all these platforms does not mean that it will usable on all of them. You won't be able to optimize your UI toward the expectations of a given platform. And you won't be able to design your interactions in a way that works well for all user types.

Better to do it well on one platform. If you know what kind of software you're trying to build, then the rest should logically follow.

f0dder:
A full application might not be feasible to do portably, but portability is important when you're writing library routines. And even if you don't aim to make your SuperAppTM portable, it doesn't hurt keeping portability in mind, as it (imho) helps you think a bit more componental/modular, and leads to cleaner code.

As for O'Reilly, their books are a mixed bag. Some are pretty good though. My bookshelf has most titles by Addison-Wesley.

Armando:
Thanks for your answers.

Why would you think portability is important?
-CWuestefeld (January 22, 2008, 04:34 PM)
--- End quote ---


My idea of learning a portable language only comes from the fear of being strictly OS bound... I guess the idea is driven by the frustration with all these Windows applications that I'd like to use in Linux (but can't)... Instantly, without any further integrations, customization, etc.: Farr, SyncBackSE, abbyy fine reader or omnipage,  X1 or Archivarius, etc.

Now, from what you say, I understand that portable applications usually can't achieve the level of usability that non portable ones have. Or can they? Is that because of the limits of the languages used ?


A full application might not be feasible to do portably, but portability is important when you're writing library routines. And even if you don't aim to make your SuperAppTM portable, it doesn't hurt keeping portability in mind, as it (imho) helps you think a bit more componental/modular, and leads to cleaner code.
-f0dder (January 22, 2008, 05:08 PM)
--- End quote ---

Thanks f0dder.

tinjaw:
Could tinjaw give more details on why "Python" in addition to cross platform capability. 
I'm interested in broadening my programming language abilities. 
-TxQuestor (January 21, 2008, 11:48 AM)
--- End quote ---

Python is an excellent language for learning because it is one of the easiest to read. You can look at code examples and easily grasp what they are doing. It is part of the foundation of the language.

The Zen of Python

    Beautiful is better than ugly.
    Explicit is better than implicit.
    Simple is better than complex.
    Complex is better than complicated.
    Flat is better than nested.
    Sparse is better than dense.
    Readability counts.
    Special cases aren't special enough to break the rules.
    Although practicality beats purity.
    Errors should never pass silently.
    Unless explicitly silenced.
    In the face of ambiguity, refuse the temptation to guess.
    There should be one-- and preferably only one --obvious way to do it.
    Although that way may not be obvious at first unless you're Dutch.
    Now is better than never.
    Although never is often better than *right* now.
    If the implementation is hard to explain, it's a bad idea.
    If the implementation is easy to explain, it may be a good idea.
    Namespaces are one honking great idea -- let's do more of those!
-PEP20
--- End quote ---

As an alternative, can anyone recommend an IDE. 
Example:  SharpDevelop, DevC++.
-TxQuestor (January 21, 2008, 11:48 AM)
--- End quote ---

For Python, I recommend iPython for standard command line work and Eclipse with Pydev and pyDev Extensions for an IDE.

For books, I recommend How to Think Like a Computer Scientist: Learning with Python. (Free download supported by purchasing the dead tree edition.)

mouser:

I still stick with my first piece of advice, which is to try to find a book that motivates you.  But perhaps the other thing to say is that maybe the important thing is not to choose the best language for you right away -- instead, it may be most important for you that you try a few languages.

Not only will this let you figure out which one suits you best, it will serve the very important purpose of helping you to see which concepts are common across languages, and which features are specific to different languages.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version