Jump to content
IGNORED

Programming Languages


Recommended Posts

Guest Wall Bird

What are the differences and advantages between the many popular programming languages?

 

This is a broad, open, question that is not easily answered by any single reference. WATMM seems to have it's fair share of computer programmers who are seasoned and familiar with many languages, so I wonder; what are the applications best suited to specific programming languages?

 

For example; what are the differences in style and use of Lisp and Pascal?

 

What is the difference between C, C++, and Objective C?

 

What dimensions are there to consider when settling on coding in a particular language? Characteristics like flexibility, elegance, power vs. control, simplicity, compatability, etc.

 

Programming is something that I've been curious about for a while and I am trying to get a feel for the field.

Link to comment
https://forum.watmm.com/topic/65720-programming-languages/
Share on other sites

Hard question. this is a forum, not a dissertation.

 

The wikipedia entries on various languages are usually good at describing their fundamentals

 

edit ... ok, I'll give it a shot.

 

Broad families of languages:

 

You've got your old-school pre-object procedural languages (variables, loops, if statements, functions, procedures):

 

fortran, basic, c, pascal

 

then Smalltalk (a language and a platform combined )came along with a load of ideas about objects.

 

This led to Object oriented languages (they all have classes, inheritance, etc), some that were new and some that were variants of the old procedural languages:

 

c++, objective-c, java, c#, visual basic .net (just scrapes onto the list), delphi (object pascal), ruby (I think?)

 

mroe scripty ones can also be lumped under the object oriented group:

javascript , php, perl, python

 

Then, completely separately, you've got languages that are not based on the procedural or object parasigms:

 

prolog (rules processing), lisp and scheme (functional - 'everything is a function'), Mathematica (symbolic processing)

Edited by zazen
Link to comment
https://forum.watmm.com/topic/65720-programming-languages/#findComment-1568595
Share on other sites

Maybe you could give a random scenario that you would need sorted out and you may get a few ideas to the awnser to your query. Giving you a more in depth view of what does what.

:doge: Jet fuel can't melt dank memes :doge:

Link to comment
https://forum.watmm.com/topic/65720-programming-languages/#findComment-1568690
Share on other sites

Guest Babar
  On 4/27/2011 at 9:27 AM, hahathhat said:

C forces you to think a bit like a computer...

C++ is a bit abstract(ed)...

never used objective C, that's iphone right?

 

i'm seriously digging objective-c. It looks a lot like java and probably like C++ (class-based + feature-based ontology). To me java is like a tree : boxes inside boxes while objective-c is more about connecting modules. That's because objects can live outside of the object paradigm (thanks to its implementation of C). The object machinery is also more accessible. You can redefine the way messages are forwarded between instances and you can inject new methods into existing classes (without extending them). And the cocoa api is well designed. It's like using an iPod.

 

 

To the OP: start with java though.

Learning a language is usually easy, it takes around 2 weeks or so.

Edited by Babar
Link to comment
https://forum.watmm.com/topic/65720-programming-languages/#findComment-1568776
Share on other sites

  On 4/27/2011 at 9:27 AM, hahathhat said:

C forces you to think a bit like a computer...

C++ is a bit abstract(ed)...

never used objective C, that's iphone right?

 

Objective C is what you use if you are developing software for Apple devices, not only iPhone.

 

Cocoa, Apple's umbrella term for their collection of frameworks (and Cocoa Touch for iDevices), is heavily relying on ObjC features. Aside from Apple devs, probably nobody else is using ObjC. So basically Apple are free to develop the language and Cocoa in parallel, which yields a smooth and clean synergy between the two. The frameworks are built to take advantage of dynamism and are of high-level design, and the language syntax and feature set supports these concepts very well. Which differs from C++ a lot.

 

It's also a strict superset of C, so you can just use C in your code whenever you need/want to program closer to the chip. You can also freely mix Objective C with C++, if you want to have C++ features such as operator overloading. You can have ObjC classes with C++ members for instance. You'll want to use C or C++ to for performance critical tasks such as audio processing or OpenGL graphics in most cases, since the dynamism of ObjC gives a bit of a performance overhead in certain things such as method calls (which are called message dispatch because they are resolved at runtime entirely).

 

So in conclusion, it's a great language imho because it itself has features that make high level programming very comfortable, and it can seamlessly scale towards C++ / C where you want to lick the metal.

Link to comment
https://forum.watmm.com/topic/65720-programming-languages/#findComment-1568791
Share on other sites

All popular programmings languages look like Algol with a half-assed type system that can't even do things like polymorphism and inheritance right. All the differences are superficial, really.

Yo, my name is Saad and I don't give a fuck.

Link to comment
https://forum.watmm.com/topic/65720-programming-languages/#findComment-1568794
Share on other sites

in the end all general purpose languages are equivalent in terms of what you can do innit.

So Scheme is kind of interesting for its simplicity, though there has to be reasons why it's not at all used in software development. Is it because of the (((parentheses)))))))))((((())))()())?

Link to comment
https://forum.watmm.com/topic/65720-programming-languages/#findComment-1569259
Share on other sites

Guest hahathhat

oh, i don't really know scheme. i had to do something in it many years ago for a school project. it's a "functional" language, as opposed to "procedural." C/C++ are procedural, in that they have variables, state, etc. a functional program, on the other hand -- calling the same function with the same arguments should always result in the same result, i think. in practice, it's just a mindfuck of nested recursion. largely used in academia, rarely seen making any money. it's lovely if you're into comp sci, but it's also an easy punchline. like: "they teach scheme first at MIT, because if you can write it in scheme, you can write in any language." because it's such a brainfuck. esp. if you're used to procedural programming.

Link to comment
https://forum.watmm.com/topic/65720-programming-languages/#findComment-1569267
Share on other sites

i think they used to teach computer science to 1st year students at MIT using Scheme, but that was in the 80s. There's this famous lecture series: http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

I watched it because i had read somewhere that Scheme/Lisp was special because "everything, down to the primitives and operators, could be expressed using functions in the same language, and that's the real deal", at least that's what i thought Scheme was about... this statement is probably not even true..? but couldn't be arsed to explore it more deeply. The lectures are still interesting at least from a historic pov... nowadays MIT are teaching the same classes using Python if i'm not mistaken, and the point is still the same i guess: making the process of creating complex software by flipping bits comprehensible to students. Scheme (and apparently Python) seem to be suitable to deliver certain points...

 

there's also this programming environment called impromptu, using a Scheme implementation: http://impromptu.moso.com.au/

I'd want to play with it if it had less parentheses. :emotawesomepm9:

 

  Quote

calling the same function with the same arguments should always result in the same result, i think.

 

yeah basically the function "+" will add two numbers, donkeys, planets or whatever you bother to recursively implement :braindance:

but you can do that in C++ too.

Edited by Guest
Link to comment
https://forum.watmm.com/topic/65720-programming-languages/#findComment-1569278
Share on other sites

Guest Wall Bird

What's the deal with Lisp? What sets it apart from other languages?

 

Is it ever favored in any particular fields? As I understand it, Lisp is incredibly flexible and easy for coding new solutions on the fly, allowing you to make very large strokes and invent create tools as you require them. Is this accurate? Are there any huge hangups one should know about before pursuing this language?

Link to comment
https://forum.watmm.com/topic/65720-programming-languages/#findComment-1569360
Share on other sites

Guest hahathhat
  On 4/28/2011 at 7:02 AM, Wall Bird said:

What's the deal with Lisp? What sets it apart from other languages?

 

Is it ever favored in any particular fields? As I understand it, Lisp is incredibly flexible and easy for coding new solutions on the fly, allowing you to make very large strokes and invent create tools as you require them. Is this accurate? Are there any huge hangups one should know about before pursuing this language?

 

lisp is also a functional language. lisp is scheme's daddy, i believe. interesting but impractical (for most of us)

Link to comment
https://forum.watmm.com/topic/65720-programming-languages/#findComment-1569370
Share on other sites

  On 4/28/2011 at 7:02 AM, Wall Bird said:

What's the deal with Lisp? What sets it apart from other languages?

 

Is it ever favored in any particular fields? As I understand it, Lisp is incredibly flexible and easy for coding new solutions on the fly, allowing you to make very large strokes and invent create tools as you require them. Is this accurate? Are there any huge hangups one should know about before pursuing this language?

 

Lisps mostly used in AI fields. Never programmed in it myself, but programmed lots in PROLOG instead (literally you're programming in propositional logic). Which is similar to the extent that you solve problems by programming in recursive functions. This can be massively fun after you've passed the initial brainfuck stage. The reason why these 'recursive' languages can be preferred over normal procedural languages stems mostly from the way it represents a solution for a problem. In these recursive languages you're basically writing proofs. You define a couple of premisses and a function from which all possible answers can be deduced (recursively). So instead of writing out the entire procedure, you only have to define the rules by which a problem needs to be solved.

 

And as to why lisp and prolog are impractical (apart from performance issues): in practice a "proof" for a problem is 1. very rare (if it exists at all) 2. uninteresting from a non-academic point of view.

Edited by goDel
Link to comment
https://forum.watmm.com/topic/65720-programming-languages/#findComment-1569392
Share on other sites

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   1 Member

×
×