Programming Languages, myself and the future

Started by
40 comments, last by intransigent-seal 18 years, 3 months ago
Quote:Original post by haro
The 'restrictiveness' of a language is directly related to the incompetence of the user of said language. The 'elegance' of a language is directly related to the competence of the user of said language. Which language is better suited to mental masturbation is entirely irrelevant.

Errr.... you don't actually believe this, right?
Advertisement
Quote:Original post by Sneftel
Quote:Original post by haro
The 'restrictiveness' of a language is directly related to the incompetence of the user of said language. The 'elegance' of a language is directly related to the competence of the user of said language. Which language is better suited to mental masturbation is entirely irrelevant.

Errr.... you don't actually believe this, right?


I don't agree with his absolutism. But many times, some code is ugly because the coder is hurry, or a dumbass, or both.

In some trives, having one's large big balls shown to everyone else is seen as elegant tough.
[size="2"]I like the Walrus best.
Quote:Original post by haro
The 'restrictiveness' of a language is directly related to the incompetence of the user of said language. The 'elegance' of a language is directly related to the competence of the user of said language. Which language is better suited to mental masturbation is entirely irrelevant.


Can you confirm that you're not calling function currying mental masturbation?
Quote:Original post by haro
The 'restrictiveness' of a language is directly related to the incompetence of the user of said language. The 'elegance' of a language is directly related to the competence of the user of said language. Which language is better suited to mental masturbation is entirely irrelevant.

The restrictiveness of a language is directly related to the expressive power of a language - independently of any users. The competence of a user of said language dictates how well they can harness the expressive power. If a language is restrictive, then competent users may hit the ceiling. The lower that ceiling, the lower the required competence to hit the ceiling. Restrictive languages can act as a great leveller!
Quote:Original post by Extrarius
I don't doubt that your productivity went up, but I got the feeling from the way you said so that perhaps you don't make much use of c++s standard library.

Also, IME, this is one of the main reasons beginners (not that you are one) hate C++ and love languages like python is that they were never exposed to the STL and might not even know it exists, whereas with languages like python, the data structures are 'shoved in your face' so to speak, and the absence of a few (arrays iirc) isn't apparent to them since they don't really know that much (if anything) about data structures.

I'll be learning python for a class this semester, but I'm biased against it and would like to hear other's opinions/reasons/rationalizations/etc to help balance my input =-)


I've been exposed for a lot of time in C++,STL and (lately)boost. I've recently started messing around with Python and I love it. STL and boost are both great additions to C++, but they still use the C++ syntax to do things. It just doesn't feel as natural and easy as it is with Python.

For example, Python lists can have elements of different types. I can probably do this in C++ using std::list and Boost::Any or Boost:Variant, but it isn't the same, because of the restrictive C++ syntax, which is a boundary that you can sometimes go around, but never beyond it. If I had to use an analogy, I would say that C++ ties my left hand behind my back, and then gives me a tool(STL and boost) that, if used correctly with my right hand, can make up for the loss. But Python lets both my hands free from the beginning. It's not surpising that Python has powerful libs like Numeric which, from what I've seen so far, gives the ease of syntax and power of Matlab(as far as manipulating multidimensional arrays go), and then some. It's just designed in a way that has much less limits than C++. And let's not talk about how easy it is to inspect and manipulate code at run-time, and how much more sense it makes for variables to be untyped references to any existing object, instead of the static typing C++ has. Bottom line: It makes me more productive, because it makes it so easier and natural for me to express programming notions that seem amazingly difficult and "kludgy" in C++.
Quote:Original post by Extrarius
Also, IME, this is one of the main reasons beginners (not that you are one) hate C++ and love languages like python is that they were never exposed to the STL and might not even know it exists, whereas with languages like python, the data structures are 'shoved in your face' so to speak

I'm not sure your figure of speech is really appropriate. Part of the appeal of, say, the dictionary structure in Python is that it is intrinsic to the language rather than `shoved in your face'. For example, a class definition is itself held in a dictionary. This means that metaprogramming can be achieved by accessing dictionaries of language elements in the same way that you would access any dictionary.
Quote:
I'll be learning python for a class this semester, but I'm biased against it

Why are you biased against it?
You might like to try out C#. The .NET Framework comes with a throng of tools that you can work with in your projects (lists, hashtables, etc). It eliminates all that time you spend working on making the correct data manipulation tools in C++. The syntax is quite similar to C++ as well so you won't have to learn much.

If you still don't want to stray away from Python, you could check out IronPython, a Python implementation targeting .NET .
Rob Loach [Website] [Projects] [Contact]
I don't think it's a coincidence that newer languages are co-opting features that at one time were the domain of functional languages. Polymorphism, lambda functions and first class functions etc etc.
Quote:Original post by flangazor
Can you confirm that you're not calling function currying mental masturbation?


It's not obvious that function currying is exactly what I was referencing? Sorry, I will try to avoid any semblance of subtlety on these forums in the future.
Quote:Original post by Sneftel
Quote:Original post by haro
The 'restrictiveness' of a language is directly related to the incompetence of the user of said language. The 'elegance' of a language is directly related to the competence of the user of said language. Which language is better suited to mental masturbation is entirely irrelevant.

Errr.... you don't actually believe this, right?


Perhaps I've become jaded after working with too many fresh graduates, but I absolutely believe what I said. The level of competence in any specific language tends to be exceptionally low, to the point that the merits of the language become essentially irrelevant. As one example, it's simply rediculous when it takes somebody a month ( or even a week for that matter! ) to design and implement a XML to UI system due to general incompetence and overengineering; which are often directly correlated with an obsession in 'quirks' and various forms of mental masturbation.

This topic is closed to new replies.

Advertisement