Helpful Information
 
 
Category: Other Programming Languages
What languages do you know?

Hi all,

Out of interest, I thought I'd ask you all what languages you know ( where "know" means "can write a fairly complicated program in" and not "can hack something together when the docs are handy" ).

This is mainly to get an idea of the strengths we have here.

Please let me know via PM if you want to add more languages ( these were just the ones that came to mind ).

--Simon

You have Scheme on there twice.

fixed :)

You just had to include vB... :rolleyes:

Hi all,

Out of interest, I thought I'd ask you all what languages you know ( where "know" means "can write a fairly complicated program in" and not "can hack something together when the docs are handy" ).

Here you've nailed me right in my main weak spot: by my own assessment, I would not consider myself to meet that definition of 'knows' for any language, period. Now, perhaps my standards are too high, but the truth is that I've never really focused on any one language long enough to really master it; the only one where I could get along to any significant degree without heavy use of the docs would be C, and that simply from long familiarity.

OTOH, I can write and read code in pretty much any of the languages listed to at least some degree. Jack of all trades and all that, you know.

Just thought of something, might want to change Delphi to Pascal/Delphi, or give Pascal its own section.

This is a little difficult to answer because languages that I have been able to write competently in have have faded from memory.

A few years back I was able to work with PHP to a fair degree: I knocked up a usable forum, shout-box and blog in a day or two with login system etc. while at a web development company.

Now I wouldn't have a clue where to start to he honest.

The same goes for Cocoa. When I was programming heavily in Obj-C I could get things done relatively quickly but since moving on to try other (I think more interesting) things a lot of what your need to write apps for OSX has gone.

Recently while playing around with an app I was working on – written in C, Cocoa and Scheme – I found to my dismay that I had to keep checking the docs, it came back quickly but it was a very slow start.

The only languages I would say I know well enough to write in competently – by your definition – right now would be Python, Scheme and Lisp because thats what's fresh in my mind.

I've also been playing with Ruby and ML but not enough to say I know either of them. I'm another who tends to jump around from language to language until I find something I want to stick with.

If you count those languages I have used well in the past then there are considerably more :rolleyes:.

Take care guys,

Mark.

I learned C and C++ in high school but I've never really gone beyond the basics in either. I started learning PHP a few years back and I can work with it comfortably as long as I have a reference handy.
I learned assembly for a couple classes in college. Haven't really used it since.
I know javascript but I havent used AJAX. I only get to use it for personal projects.
I used ColdFusion on my last job exclusive of anything else.
I use ASP and VB on my current job but we're slowly switching to J2EE. I'm glad about that because Java is what I know best. But I still need to get better with some of the various frameworks like Struts and Spring.

Bugger, I forgot to tick php...

VB has always been my specialist subject, i mean when i started i'd barely even heard the name 'linux'... I'm adding the final touches to my college coursework, written in VB...

Perl has always been something i've loved, especially since i started getting into linux a lot more, interpreted languages just seem more at home. Same goes with ruby. I'm fast becoming something of an expert at both, since i've started developing most of my projects in them, for different purposes.

C and C++ I learnt because i thought it was just one of those things you had to know to become a good programmer. I've got damn good skills in both after lots of using them and all. Oh and I favour C over C++, because I love pointers, oh and C++'s slower performance says there's no point programming in it since the whole reason you programmed in it was for speed anyway... (love C)

Python I've done a bit with through time, but for a while i've been using it for some bigger projects, partially to make up for some issues in the ruby language involving blocks and yield().Oh, and I want to get turbogears going too ;)

Lisp is interesting, because you don't actually need to know a lot to get going, since a few basic functions allow you to build up the rest of the functionality you need, which is part of doing lisp well, anyway. So most people could write a program in lisp i guess. Perhaps not well though...

PHP, well i've got a nice pair of mysql classes that has saved me a hell of a lot of time in developing CMSes. I've been doing php for about 3 years now, and while i find the language a bit dull and rather inflexible, the way it allows you to do things fast kinda keeps me doing some of it now and again, but that said i'm moving into other areas for web development (turbogears).

My next step will be to pick up my java book again and get going, because verbose as it might be, swing is pretty neat, as are some other things. And when you've built up a collection of classes you can throw together, you can be unstoppable.

Lisp is interesting, because you don't actually need to know a lot to get going, since a few basic functions allow you to build up the rest of the functionality you need, which is part of doing lisp well, anyway. So most people could write a program in lisp i guess. Perhaps not well though...

I'm not sure whether I agree or disagree with this. I think a lot of people could write imperatively, that just involves mapping what you should know onto Lisp and the results aren't pretty or elegant.

It seems to be a matter of perspective whether this is really programming in Lisp or not because programming in any language is more than just putting text in the right place, you need to apply the right mindset to the problem.

This is why learning to program in any language doesn't just take a weekend :rolleyes:.

This is more visible in Scheme than Common Lisp because Scheme doesn't let you carry previous mindset over so readily. When it comes to looping for example doing anything in Scheme requires you to use recursion to some degree. So what, there is a 'do' loop:

No-one could be called a C programmer before they understood 'for and 'while. This is basic knowledge. Likewise no-one can claim that they know any Lisp dialect before understanding concepts like tail-recursion.

Your average C programmer isn't going to be able to make head nor tail of Lisps semantics and this actually gets worse the more you know about C like languages. Lisp is total orthogonal in concept and form but it's beautiful!

In effect learning Lisp is like learning to program all over again, nothing you thought about programming before really holds true. It gets in your way more than anything :cool:.

Getting started with Lisp is definitely more than learning the handful of forms on which everything else is built, though having such simple rules helps a lot.

MIT apparently teach the Scheme to new students in one class but give this to a seasoned C programmer and you would probably cause more than a little confusion...



> (define abs
(lambda (e)
((if (< e 0)
-
+) e)))

> (abs 5)
5
> (abs -5)
5
>
...
> (map (lambda (e) (* 3 e)) '(5 11 17 23 29 35))
(15 33 51 69 87 105)


...but this isn't difficult; it's different and therein lies the problem. I've seen lambda forms disturb programmers to the point that they start getting pissy :).

No one likes to feel like a noob, I hate it lol :rolleyes:.

I'm using the standard C programmer as an example because the two approaches are more or less opposite. I don't have anything against C programmers. In fact I can respect there patience for the most part :).

Take care all,

Mark.

Yeah, but once you've mastered recursion (hey, it exists in C too) and you know the basics, it's really not all that hard to do other things.

In Scheme, the above applies so much more, since there's bugger all in the language, so you can know the whole thing in 8 minutes :|

But yeah, knowing more in depth things (like how to use macros well) is another matter...

lol, or eight months ;). You can introduce the core forms in an hour but in order to use Scheme (or any language) well you need to read a lot and practice what you learn. That takes a lot of time.

I've read several C# books from cover to cover and I most certainly can't program in C#.

C has recursion yes but it's not used to the same degree, with the same constructs or the same types of data. There's also no concept like tail-recursion in C so assuming that you understand it and can use it immediately its a little stupid :).

It's very easy to think that you know a language but actually knowing anything is considerable harder.

Mark.

Totally, but to be able to do a job and to be able to do a job in perfect style, are different things ;)

I'm not going to claim to be a .net expert myself, not like i've been doing it that long (or even like it!), but, like any good programmer, i can turn my hand to it when required.

Totally, but to be able to do a job and to be able to do a job in perfect style, are different things ;)

I'm not going to claim to be a .net expert myself, not like i've been doing it that long (or even like it!), but, like any good programmer, i can turn my hand to it when required.

Heheh I think we have different definitions of what it means to be a good programmer and to be able to complete a task :).

Sure, hacking up some pile of crap solution that's five times longer than it needs to be, took ten times longer to write and it should have and is inefficient to boot, but gives the right results is technically completing a task: I wouldn't count it for obvious reasons :cool:.

I think programming and programming-well are more or less synonyms of each-other, or they should be!

Sadly this attitude that pulling something out of your *** means you can program in language X seems to be is shared – usually by "professional" programmers.

Job interview...
Programmer: Yeah I can program in C (I had better read the first chapter of that book I saw in Waterstones and leave without buying anything).
Manager: You're hired, I'll look forward to seeing you on monday.
Programmer: Thank you very much *Shakes hand*, have a good weekend (hahah sucker, now to rake in the cash).

Have a good weekend :D,

Mark.

Programmer: Yeah I can program in C (I had better read the first chapter of that book I saw in Waterstones and leave without buying anything).
Manager: You're hired, I'll look forward to seeing you on monday.
Programmer: Thank you very much *Shakes hand*, have a good weekend (hahah sucker, now to rake in the cash).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

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 :D.

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 :rolleyes:.

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.

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.

You didn't inclue COBOL or RPG? Pfft. What kind of poll is this? :p

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 :rolleyes:.

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.

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.










privacy (GDPR)