Moderators: phlip, Moderators General, Prelates
You, sir, name? wrote:C. Because it's only after you've suffered through mastering C you thoroughly appreciate a higher level language.
Micron wrote:It really depends on the noob and what they want to learn.
Daria wrote:Shall I attempt further heights of ego-enflation?
You, sir, name? wrote:C. Because it's only after you've suffered through mastering C you thoroughly appreciate a higher level language.
TheAmazingRando wrote:more complicated and useful languages.
Berengal wrote:TheAmazingRando wrote:more complicated and useful languages.
I strongly disagree with your opinion that complication and usefulness go hand in hand, which is what I take this statement to mean (if it's not what you meant, then just ignore).
Python is simple yet incredibly powerful. Some, including me, would say that it's simplicity is what makes it useful. As for power, well, C is a more complicated language, but I wouldn't say it's more powerful. In fact, I'd say that if a language is complicated, then that's an indication that it's less powerful than a simpler language, because the complication stems from having to construct the tools the simpler language already has to do the same task.

>>> from __future__ import braces
SyntaxError: not a chance (<pyshell#0>, line 1)ash.gti wrote:Starting with a multi-paradigm language IMO would be a good idea.
So, If they are really into it, they can try to implement the same thing in different ways to learn the advantages and disadvantages of each paradigm.
IMO learning a language like Java and/or C++ near the beginning of you programming life is a good idea because it shows you the different ways of doing things. Then you can move towards a language (or stay with those) that has more of the features you like.
I loved the Object Oriented aspects of C++ compared to say writing the same program from a imperative standpoint.
C++ was the second language I learned (after BASIC) and IMO the language that taught me the most about programming. Now a days I prefer languages like Ruby, Smalltalk or Pyhton to C++ but depending on what I am doing I'll use C++ still.
zenten wrote:Given that you can use Python as if it were imperative or functional, it still wins
Berengal wrote:TheAmazingRando wrote:more complicated and useful languages.
I strongly disagree with your opinion that complication and usefulness go hand in hand, which is what I take this statement to mean (if it's not what you meant, then just ignore).
Python is simple yet incredibly powerful. Some, including me, would say that it's simplicity is what makes it useful. As for power, well, C is a more complicated language, but I wouldn't say it's more powerful. In fact, I'd say that if a language is complicated, then that's an indication that it's less powerful than a simpler language, because the complication stems from having to construct the tools the simpler language already has to do the same task.
ash.gti wrote:zenten wrote:Given that you can use Python as if it were imperative or functional, it still wins
So is every language I listed except Smalltalk...
*edit*
Okay, to be fair, I also mentioned BASIC which in its true form doesn't but in more recent implementations does.
zenten wrote:I'm pretty sure that C++ and Java can't be written as a functional language. They don't have anything equivalent to lambda for one.
ash.gti wrote:Java... beats me, but I hear in the next 'big' release of java they are adding lambda's as a built in component. They are also adding in lambda's to C++ in the C++0x standardization but no compilers follow it currently that I am aware. see http://en.wikipedia.org/wiki/C%2B%2B0x# ... xpressions
class LambdaCaller{
public static void callLambda(Lambda lambda, Object... args){
lambda.call(args);
}
}
abstract class Lambda{
abstract public void call(Object... args);
}
class Main{
public static void main(String[] args){
LambdaCaller.callLambda(new Lambda{
public void call(Object... args){
System.out.println("Hello world! I'm a lambda!");
for(Object arg: args)
if (arg != null)
System.out.println(arg);
}
}, (Object) "I'm an arg!", (Object) "Me too!");
}
}from math import algebra, calculus
from knowledge import *
def languageToStart():
levelOfMath = knownStuff.math()
if levelOfMath < algebra:
return "BASIC, but not Visual Basic"
elif algebra <= levelOfMath < calculus:
return "Python"
elif levelOfMath >= calculus:
return "Some kind of Lisp"
else:
return "C" #you should never get here, though--C should really be a second language
class HelloWorld {
public static void main(String args[]) {
System.out.println("hello world");}}
Polaris wrote:Allow me to put all languages in the following categories:
- Procedural. Assembly, C, C++. (I don't count 1-method static void main's to be "procedural")
- Object Oriented. Java, C++, C#
- Functional. Lisp, SML, F#
- Scripting. PHP, Ruby, Python
Some of us exist to find out what can and can't be done.
Others exist to hold the beer.
btilly wrote:Some day you will learn Prolog and you'll realize that your categorization breaks down.
Rysto wrote:btilly wrote:Some day you will learn Prolog and you'll realize that your categorization breaks down.
Prolog either goes in the "Logic Programming" category or the "Turing Tarpit" category.
Some of us exist to find out what can and can't be done.
Others exist to hold the beer.
Users browsing this forum: Bakstoola and 1 guest