Results: What languages do you know well? 

Voters
212 You may not vote on this poll

  • C
    96  45.28%
  • C++
    99  46.70%
  • C#
    47  22.17%
  • Perl
    39  18.40%
  • Python
    55  25.94%
  • PHP
    122  57.55%
  • Lisp
    15  7.08%
  • Scheme
    8  3.77%
  • Assembler ( any variant )
    55  25.94%
  • Java
    96  45.28%
  • ASP
    24  11.32%
  • .NET
    35  16.51%
  • Visual Basic
    71  33.49%
  • Cold Fusion
    7  3.30%
  • Delphi
    19  8.96%
  • Ruby
    21  9.91%
  • Fortran
    14  6.60%
  • MatLab
    13  6.13%
  • Javascript
    98  46.23%
  • Tyle
    3  1.42%
Multiple Choice Poll.
    #16
  1. Hello World :)
    Devshed Frequenter (2500 - 2999 posts)

    Join Date
    Mar 2003
    Location
    Hull, UK
    Posts
    2,537
    Rep Power
    72
    Originally Posted by crownjewel82
    that's quite common but some people are actually able to learn languages quickly and are able to use references to do so effectively.

    For example, My interview went something like this:
    First Round:
    Manager: We use ASP and VB here do you know those?
    Me: No but I have a gift for learning things quickly.
    Mangaer: <-- skeptical

    Second Round:
    Manager: Change this ASP code to do XYZ instead of ABC
    Me: <-- Does it faster than anyone else.
    Manager: <-- is a believer
    Awesome crown, way to show the manager whose boss .

    I'm not saying that you can't learn quickly, you obviously learn very quickly. I'm saying that in order to really know any language it does take time and effort. I don't think this can be argued with .

    Lisp amplifies this effect because it approach is about as different as you can get, code is data is code. Everything is an expression. These things dramatically effects the flow of your programs so you can't carry over as much as your experience as you would when learning yet another X-like language.

    I've been using Ruby for a day or two and I've accomplished every task I've set my mind to porting some of my Python examples. Does this mean that I know Ruby? I don't think so but maybe you do .

    Lisp aside presuming that a language can be "known" after minimal exposer is just wrong.

    I'd say the point at which you know a language is when you start to think in that language not the point at which you can apply what you know from other languages to piece something together.

    On the VB front I can empathize; I used VB for the first time in college but after a few lessons I started to finish assignments quicker than anyone in the class, even those who'd taken IT courses before, and sometimes even the teacher.

    I can't comment on ASP but VB isn't a hard language to learn if you have any prior programming experience . I'm not trying to belittle you're interview, I think thats awesome .

    It just seems to me that too many programmers will read one or two articles, maybe a chapter of a book, a wiki-page maybe, never use a language or use it once and then walk around saying they know it .

    As a consequence there code is very poor quality; what they know is incomplete; it's my opinion that if you know a language then your solutions will naturally be good ones. If there not then programming probably isn't for you.

    These are my opinions anyway, enjoy .

    Mark.
    programming language development: www.netytan.com Hula

  2. #17
  3. No Profile Picture
    rebel with a cause
    Devshed God 1st Plane (5500 - 5999 posts)

    Join Date
    May 2004
    Location
    The Batsh!t Crazy State.
    Posts
    5,814
    Rep Power
    3464
    Oh I don't feel that learning ASP (ASP is to VB as JavaScript is to Java, kindof) in an interview was any great feat so no worries there.

    I feel that there are three stages to learning anything, including programming.

    1. The basics. This is the scratching the surface bit. At this point you can't claim to know anything about the subject. Just to be learning.
    2. Familiarizing. This is learning how things work. Once you're familiar with it then you can say you know the subject. Like you say you should be able to think in that language.
    3. Mastery. This is when you become an expert.

    Most people who claim to know something actually know the basics, if anything. I never claim to know anything unless i'm familiar with it. And that takes time. I usually get there pretty quickly compared to most people I know. But no one is getting there overnight.

    Comments on this post

    • netytan agrees : :)
    Dear God. What is it like in your funny little brains? It must be so boring.
  4. #18
  5. Back after 2 years!
    Devshed Intermediate (1500 - 1999 posts)

    Join Date
    Dec 2003
    Location
    Washington, DC Metro
    Posts
    1,746
    Rep Power
    889
    You didn't inclue COBOL or RPG? Pfft. What kind of poll is this?
  6. #19
  7. Hello World :)
    Devshed Frequenter (2500 - 2999 posts)

    Join Date
    Mar 2003
    Location
    Hull, UK
    Posts
    2,537
    Rep Power
    72
    Oh, but it's still a very cool: "Can you programming in X", "Not yet give me half an hour"... *jaw drops* .

    Anyway that's a good way of looking at it and I agree entirely with what you've said. The problem as I see it is that most programmers doesn't seem to share this attitude and that has to be a bad thing.

    The result is a culture of people thinking that they have nothing left to learn about subject Y; that they know about for example, Lisp, just because they've read that Lisp has high order functions, uses lots of parenthesis and supports recursion .

    The basics as you called them.

    Knowing the why and the how relating to these subjects is much harder and takes far longer than simply reading that they're available and deciding you know enough about them to move onto learning the basics of the next language .

    I guess it's a good way to pad out your CV/Resume, but if your going to only learn the basics about something don't write it as if your fluent .

    Take care all,

    Mark.
    programming language development: www.netytan.com Hula

  8. #20
  9. No Profile Picture
    rebel with a cause
    Devshed God 1st Plane (5500 - 5999 posts)

    Join Date
    May 2004
    Location
    The Batsh!t Crazy State.
    Posts
    5,814
    Rep Power
    3464
    The saddest thing is people who spend a year working with C++ and can't get the basics in a language like Java which is a C family language. I almost had a heart attack when someone with said experience in C++ said they didn't understand for loops in Java.
    Dear God. What is it like in your funny little brains? It must be so boring.
  10. #21
  11. Hello World :)
    Devshed Frequenter (2500 - 2999 posts)

    Join Date
    Mar 2003
    Location
    Hull, UK
    Posts
    2,537
    Rep Power
    72
    Originally Posted by crownjewel82
    The saddest thing is people who spend a year working with C++ and can't get the basics in a language like Java which is a C family language. I almost had a heart attack when someone with said experience in C++ said they didn't understand for loops in Java.
    Hahahah, no! That's crazy but it does show that learning is a skill in itself . I personally can understand why someone with years of C experience under there belt wouldn't be able to pick Lisp up very easily but for loops are for loops are for loops in my experience*. Java as you said is from the same family and shares a lot of the same ideas anyway.

    Maybe they only ever used while loops and so it's not really that they don't understand for in Java but that they don't understand it period?

    *chuckling* thanks ,

    Mark.

    * In Python for is actually used to mean for-each but it doesn't look like a for loop anyway, it just uses the same keyword .
    Last edited by netytan; March 25th, 2006 at 01:37 PM.
    programming language development: www.netytan.com Hula

  12. #22
  13. No Profile Picture
    rebel with a cause
    Devshed God 1st Plane (5500 - 5999 posts)

    Join Date
    May 2004
    Location
    The Batsh!t Crazy State.
    Posts
    5,814
    Rep Power
    3464
    Maybe they only ever used while loops and so it's not really that they don't understand for in Java but that they don't understand it period?
    That's a possibility but the individual to which i refer to used for loops in c++ and had sat through a lecture which said that looping in java was the same as c++.
    Dear God. What is it like in your funny little brains? It must be so boring.
  14. #23
  15. Hello World :)
    Devshed Frequenter (2500 - 2999 posts)

    Join Date
    Mar 2003
    Location
    Hull, UK
    Posts
    2,537
    Rep Power
    72
    Originally Posted by crownjewel82
    That's a possibility but the individual to which i refer to used for loops in c++ and had sat through a lecture which said that looping in java was the same as c++.
    I'm no Java expert, I've only read a little about but maybe he was speaking of the enhanced for in Java? Other than that looping seemed to work the same to me, but then I haven't really looked into it all that much .

    If I was going to use Java I'd probably be more inclined to use one of the Java bridges like Jython or JRuby etc.

    The again there's a bunch of Scheme->Java compilers and interpreters that I've been looking at. Call it a personal preference but I wasn't to impressed by Java so I never pursued it .

    Mark.
    programming language development: www.netytan.com Hula

  16. #24
  17. No Profile Picture
    rebel with a cause
    Devshed God 1st Plane (5500 - 5999 posts)

    Join Date
    May 2004
    Location
    The Batsh!t Crazy State.
    Posts
    5,814
    Rep Power
    3464
    You're a good person trying to justfy this person not knowing. But this was not the case. Java 1.5 was still in beta at the time. And the standard for the class was 1.3.1. This was a case of a person who should have known something but didn't because of no other reason than their own inability to pay attention and do more than regurgitate information.
    Dear God. What is it like in your funny little brains? It must be so boring.
  18. #25
  19. Hello World :)
    Devshed Frequenter (2500 - 2999 posts)

    Join Date
    Mar 2003
    Location
    Hull, UK
    Posts
    2,537
    Rep Power
    72
    Originally Posted by crownjewel82
    You're a good person trying to justfy this person not knowing. But this was not the case. Java 1.5 was still in beta at the time. And the standard for the class was 1.3.1. This was a case of a person who should have known something but didn't because of no other reason than their own inability to pay attention and do more than regurgitate information.
    Thank you .

    Imagination is the difference between an artist and a photocopier. If you ask me programming qualifies is an art so imagination is a very important part of being a good programmer.

    I can't see how you'd ever get anything but an ad-hoc solution if you just peace together other peoples work. Artists though don't tend to think in a very logical way, they're notorious for it .

    So maybe to be a good programmer you need both. You'd certainly never innovate without imagination, but you may never get anything to work without logic .

    Both seem to be important. Maybe your friend just doesn't have the imagination or insight to do anything but come out with tired ideas (regurgitating information). Couldn't tell you but he/she defiantly wouldn't qualify as a good programmer in my eyes.

    I'm not really qualified to judge anyone but I can recognize a good solution and good programmers are those who produce them. Why are they good solutions? It would probably take too long to analyze but they often break the mold!

    Kind regards,

    Mark.
    programming language development: www.netytan.com Hula

  20. #26
  21. No Profile Picture
    Contributing User
    Devshed Intermediate (1500 - 1999 posts)

    Join Date
    Feb 2004
    Location
    San Francisco Bay
    Posts
    1,939
    Rep Power
    1316
    I know C and C++ well according to SimonGreenhill's standard. With the docs handy, I'm pretty competent in PHP (did a large project in the past). I could similarly make do in Java, Perl, and Fortran 77, in order of decreasing competence.

    The other language I'm proficient in is PostScript. I know it better than I know any other language just due to sheer experience. That's another language, like Lisp, that will shift your thinking about programming if you come from an Algol-family background. Here's a function that, given an array and a function, will return the array that results when the function is applied to each element of the original array:
    Code:
    {[3 1 roll forall]}
    Note the lack of any need to define your own variables (although PostScript has complete support for local variables). Also, we can use the definition of the function as a literal without giving it a name. So PostScript, although it isn't actually a functional programming language, has some of the perks of functional and combinatory languages.

    Comments on this post

    • netytan agrees : Nice; reminds me of map in Scheme to a degree, maybe I'll look into it :).
  22. #27
  23. fork while true;
    Devshed God 1st Plane (5500 - 5999 posts)

    Join Date
    May 2005
    Location
    England, UK
    Posts
    5,528
    Rep Power
    1054
    Some interesting ideas coming out here.

    First of all, mark: I'm not saying you can program WELL overnight, that's never going to happen. I'm agreed that you're competent at the point you can think in a language.

    Programming to me doesn't mean being able to free yourself of the docs entirely, there is always something you need to do that you've never done before. 5 years of VB and I still have to look some things up, but that's one language i'm a true expert in (much as i now despise it [but hey, my coursework works ]).

    On another note, I've been thinking in OOP for a long time now, but I never used inheritance as much as I should. That's changed now I've started modelling everything in UML. By no shakes of the imagination am I a UML expert, I had rick explain the grounding in 6 minutes. I'm going to enclose a uml class diagram i've been working on to show just how it helps lay out inheritance and dependencies etc. It's for an open source project i'm working on (a replacement to the X windowing system, in fact) so it doesn't matter me showing you it
  24. #28
  25. Hello World :)
    Devshed Frequenter (2500 - 2999 posts)

    Join Date
    Mar 2003
    Location
    Hull, UK
    Posts
    2,537
    Rep Power
    72
    Heys,

    I'm certainly not an expert in VB so cu-dose to you on that, you couldn't get me to program in it out of class if you threatened to break my fingers . Do I think I can program "well" in VB now? Not a chance, but I can better than anyone who was in the class .

    I'm not saying you can't learn the basics quickly: learn that print "hello, world" does exactly that. I was saying it depends on your definition of well and obviously ours differs quite a bit. I definitely don't think that you ever get to a point where you can dispense with references and learning. If you have then you really shouldn't have so I do agree with you there .

    From my point of view far too many people decide they're competent and strut around acting like it when they really don't have any real knowledge about a subject why does this bother me? Why am I sure it bothers any good programmer?

    Besides my having to listen to or read their crap it really doesn't. If someone produces some bad code but doesn't act like they know everything already and give excuses for it then that's reasonable. It's when they write crap but act as though they're experts dispensing half truths about subjects they know more or less nothing about.

    I don't care that these people are bad programmers (the worlds fully of them) until I have to interact with them and then it really pisses me off .

    In hindsight maybe I should never leave my house .

    On OO you don't want to know my all opinions, I've used it for years in many different languages and to be honest I can't see any good reason for spending triple the amount of time designing classes, building them and inheriting from repeatedly when the same task could be solved more clearly (less clutter) with a greater enfaces on code reuse though functions, factories and closures.

    I do advocate functional programming though so consider it a personal bias

    It occurs to me that OO in general and all of the properties that are flaunt about are really just syntax for things that existed for decades before OO. Normally programmers would be up in arms about having to do more than they have to, but no-one has any problems with adding all his extra syntax and the constraints that go with it for no good reason.*

    Nice diagram ,

    Mark.

    * Unless you consider catering for the lowest common denominator to be a good reason and then you should raise your standards. Sometime, maybe I should not saying what I think.
    programming language development: www.netytan.com Hula

  26. #29
  27. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2005
    Posts
    86
    Rep Power
    12
    The funniest thing about programming (or computing in general) is that you always find someone that thinks they know about their stuff, only because they don't know what's out there... If they're confronted with someone that actually knows more, that's when they realise how small they actually are.
    It's not difficult to find someone that just got out of university, and thinks he/she knows what programming is, or thinks he/she know this or that technology, but when they get inside a department with more people with their academic background but much more experience, that's when they realise that all the knowledge they think they had, is hardly enough, or good enough.

    What i have learned so far, is that "mastering" a language is hardly a good thing. If you intend to do this, then prepare yourself to get overruled by most people. Your knowledge will only be put to use, when nothing else will do, and only that language produces what you want... And all this, supposing that that language is still used in something.

    Secondly, I don't even know what "mastering" a language is!! Is it being quite comfortable with it, in order to produce code quite fast?!?!? I don't know what people mean by that...

    Another thing, is that nowadays i hardly know what people mean by being a good programmer. I used to thing that a good programmer, was a person that "mastered" a language, so he/she would know his/her stuff. Nowadays, and after seeing some so called good programmers (masters of this or that language) produce very bad code, and I'm not talking about bug's because the code actually worked, only it had very bad programming practices... Because, don't forget, you will have to produce code together with 10/100/1000 more people, and not alone...
    I don't know anymore what it is...
  28. #30
  29. Commie Mutant Traitor
    Devshed Intermediate (1500 - 1999 posts)

    Join Date
    Jun 2004
    Location
    Alpharetta, GA
    Posts
    1,809
    Rep Power
    1572
    A few notes on some of the things mentioned in this thread:

    I definitely agree that OO, especially the very static OO in languages like C++, Java and Object Pascal, is overrated. Many of the problems in programming today come from tunnel vision, and especially, from not using the appropriate tool (language, paradigm, library) for the job. The main strength of OO is in modelling (which is what Simula was originally designed for), and more specifically, for handling fairly complex, atomic (in the sense of indivisible) data structures which have several related variations. It is no accident that OOP came to the fore at the same time GUIs did: they are an almost perfect match. As for the 'extra' syntax needed to support OO, well, from a certain POV nearly everything is syntactic sugar; the trick is to find the particular syntax and semantics that match the problem at hand.

    It is also helpful to keep in mind that of the first three important OO languages, Simula was specifically for simulations, and not really intended for general-purpose programming; Scheme dropped the support for 'actors' (a variant form of OO developed independently at MIT by Carl Hewitt) early on when it was determined that the part of the interpreter that supported actors was exactly the same as the the section for supporting closures, leading to the discovery of object-closure equivalence and redirecting the language towards FP; and Smalltalk was meant as what today would be called a scripting language for the Smalltalk environment, having the ambitious primary goal of making applications programming obsolete, and was (and still is) far more dynamic a language than nearly all of the OOP languages that succeeded it (with a few exceptions such as Self).

    As for the matter of mastering languages, well, it's a quandary to be certain; IME, while you do need to eventually settle on a few specific languages to focus on, it is far better to take a broad view when starting out, and even once you have gotten past that stage, you should always keep an eye out for different approaches that might add to you repertoire. This is part of why I've 'wasted' a fair amount of time looking into various esoteric languages with bizarre or hairy language models; you never know what gems you'll find, even in intentional junk like Intercal, and if nothing else they can be good for a laugh. True, you can't learn every language or paradigm (I've been remiss in learning about Ruby, Smalltalk, and most of the major non-Lisp FP languages, for example; I know a smattering about them, but not much more), but even a brief exposure can make a difference.

    OTOH, most really good languages are more like Go or Chess (or perhaps The Glass Bead Game) than like Bridge; by which I mean, you can learn the basic rules fairly quickly, but real understanding takes years. Most of the mainstream languages are more like Bridge, or in cases such as C++ or Ada, more like fictional games such as Brockian Ultra Cricket or Dragon Poker; you get buried in rules and special cases which are meant to guide a hapless novice through the process of coding and debugging their programs. This approach usually backfires, in my experience, as no one can every fully understand the languages, and many bugs creep in just from the interactions of unfamiliar (or contradictory) language features.

    (Visual Basic, with it's constantly shifting syntax and undefined semantics, can be liked to Mornington Crescent, Calvinball, or, perhaps most appropriately in light of its real fiscal purpose, TEGWAR)

    While it is true that a certain amount of structure can encourage expression, too much smothers it. Like with most things, there is a balance that needs to be struck between too little structure (which can lead to analysis paralysis) and too much (which can bog your work down). As you can see, I generally favor less structure over more, but that's mostly because I see it as an opportunity to choose the appropriate structure for the project.

    Comments on this post

    • LinuxPenguin agrees : You are so full of awesomeness
    • netytan agrees : :)
    • Joseph Taylor agrees
    Last edited by Schol-R-LEA; April 30th, 2006 at 03:32 PM.
    Rev First Speaker Schol-R-LEA;2 JAM LCF ELF KoR KCO BiWM TGIF
    #define KINSEY (rand() % 7) λ Scheme is the Red Pill
    Scheme in Short Understanding the C/C++ Preprocessor
    Taming Python A Highly Opinionated Review of Programming Languages for the Novice, v1.1

    FOR SALE: One ShapeSystem 2300 CMD, extensively modified for human use. Includes s/w for anthro, transgender, sex-appeal enhance, & Gillian Anderson and Jason D. Poit clone forms. Some wear. $4500 obo. tverres@et.ins.gov

IMN logo majestic logo threadwatch logo seochat tools logo