LebGeeks

A community for technology geeks in Lebanon.

You are not logged in.

#1 February 18 2013

Kassem
Member

Why do developers learn about weird programming languages?

I would like to know why some (many?) developers tend to learn about weird programming languages that never show up in a job ad. What's the point of creating those languages in the first place? Why wouldn't the developers' community focus on a set of languages/technologies/frameworks that are widely adopted rather than wasting time and effort on "stuff" that will probably never be used in production?

Offline

#2 February 19 2013

cnicolaou
Member

Re: Why do developers learn about weird programming languages?

Kassem wrote:

I would like to know why some (many?) developers tend to learn about weird programming languages that never show up in a job ad. What's the point of creating those languages in the first place? Why wouldn't the developers' community focus on a set of languages/technologies/frameworks that are widely adopted rather than wasting time and effort on "stuff" that will probably never be used in production?

For most developers, it is a learning opportunity, which adds to the skill set they are trying to build. For others it might be out of curiosity.

The best way to learn about something is to share what you are learning with others, which I am guessing is the purpose of these lightening talks.

Is there anything specific that you'd be interested in? Personally, I would love if someone is interested in giving a talk about MVMM frameworks, such as Ember.js or AngularJS

Disclaimer: I am not a regular on the forum so apologies for chiming in without checking profiles

Offline

#3 February 19 2013

arithma
Member

Re: Why do developers learn about weird programming languages?

Kassem wrote:

I would like to know why some (many?) developers tend to learn about weird programming languages that never show up in a job ad. What's the point of creating those languages in the first place? Why wouldn't the developers' community focus on a set of languages/technologies/frameworks that are widely adopted rather than wasting time and effort on "stuff" that will probably never be used in production?

Programmer's fascination with new, arcane, cryptic, and innovative is a direct result of the frustration that is our daily job. People seek something different, forgotten, new because they're not satisfied with the general tools they have.

Being satisfied with your toolset, with your mindset, with any specific horizon you've set up for yourself is the antithesis of the world view of exploratory people who seek a solution, an idea, or an inspiration to simply become better.

I have been personally fascinated with the older, and the more academic languages, albeit have (shamefully) made dismal progress on any.

Examples: Lisp for its http://en.wikipedia.org/wiki/Homoiconicity, Haskell for pure functional paradigm and ML for a nonpure one.
Clojure and F# are examples of renovation of old "weird" languages that have been (I hear) consistently being asked for in ad jobs with high salaries.

Offline

#4 February 19 2013

Kassem
Member

Re: Why do developers learn about weird programming languages?

cnicolaou wrote:

For most developers, it is a learning opportunity, which adds to the skill set they are trying to build. For others it might be out of curiosity.

I am one of those who like to explore things out of curiosity and just for the sake of learning. But even that usually is governed by what contributes to my career in a way or another. I wouldn't really learn a language I don't see myself using sometime in the future.

I know I'm starting to sound like I'm contradicting what I've first mentioned about learning for the sake of learning, but the way I see it is that learning something you will never use is nothing more than a waste of your time and effort. That is because you WILL forget all about it in a couple of weeks unless you actually use it at work or in a personal project (happened to me several times in the past).

arithma wrote:

Programmer's fascination with new, arcane, cryptic, and innovative is a direct result of the frustration that is our daily job. People seek something different, forgotten, new because they're not satisfied with the general tools they have.

I really never felt the sort of frustration you're talking about in my daily job. That is probably because the company I work for has a highly dynamic environment that leaves no room for boredom and frustration (except the times when you're fixing bugs on an old project you're still maintaining). I barely have enough time to learn the stuff that are required to complete my daily tasks, let alone learning what I will never get the chance to put into action.

arithma wrote:

Being satisfied with your toolset, with your mindset, with any specific horizon you've set up for yourself is the antithesis of the world view of exploratory people who seek a solution, an idea, or an inspiration to simply become better.

I have to disagree. You do not always have to find solutions outside the scope of what you are already familiar with. Just because you can use JavaScript to do some DOM manipulation and some input validation doesn't mean you know the language. Not until you learn JavaScript inside out will you appreciate its power and start using it to solve your problems as opposed to fighting with JavaScript to get stuff done. What I'm trying to say here is that solutions are not always solved by your "breadth of knowledge", it's almost always the "depth of knowledge" that actually helps you solve problems in the most efficient way.

Final note: I'm not really against exploring other ways of solving problems, all I'm saying is that it shouldn't get out of control. It's good to have general knowledge about a lot of things, but you also need to know the guts of what you work with on a daily basis.

Offline

#5 February 20 2013

rolf
Member

Re: Why do developers learn about weird programming languages?

To keep themselves motivated, and in the hope of learning something new that they can integrate into their work.
Of course, there are other motives too.

Kassem wrote:

But even that usually is governed by what contributes to my career in a way or another. I wouldn't really learn a language I don't see myself using sometime in the future.

In the corporate world, it's called "Research and Development".

Last edited by rolf (February 20 2013)

Offline

#6 February 20 2013

core dump
Member

Re: Why do developers learn about weird programming languages?

Kassem wrote:

I would like to know why some (many?) developers tend to learn about weird programming languages that never show up in a job ad. What's the point of creating those languages in the first place? Why wouldn't the developers' community focus on a set of languages/technologies/frameworks that are widely adopted rather than wasting time and effort on "stuff" that will probably never be used in production?

Kassem

because that there is no one language suitable across the board for all projects / needs and that each project / situation requires its own most efficient language / solution to give optimal desired effect so the more languages you learn the better you will be equipped to handle any situation no matter how hard it's thus making you a more capable programmers .

In lebanon where highly capable programmers are but few and niche group , requirements for such great talents is always in demand at higher pay  especially when the situation requires the caliber of programmer above and beyond the average level programmer you can pick up at 500 lira a dozen

Offline

#7 February 20 2013

saeidw
Member

Re: Why do developers learn about weird programming languages?

Kassem wrote:

I would like to know why some (many?) developers tend to learn about weird programming languages that never show up in a job ad.

It all boils down to that one word: weird.

A programming language is weird when it uses unfamiliar concepts and structures.
When I see a weird language, I ask my self: Why are these concepts unfamiliar?

Unfamiliar concepts usually mean that I have missing knowledge about a particular subject, and it's always good to fill in missing knowledge.

"A language where everything is a list? That's ridiculous, how can you compute anything with that?!"

I could say that and carry on just fine, but I'd miss out on homoiconicity and the Church-Turing thesis.

At one point in history, Object Oriented Programming was weird, but it gave us some useful things.

Try it, pick a "weird" language, and you'll be able to find a concept you have never come across before. It still happens to me every day, and I think it's wonderful.

As for using things in production: it doesn't matter! I'll never use Hamlet in production, but that dude Shakespeare really gets me thinking about the nature of sanity.

I do things for production, but I learn things for me.

Offline

#8 February 23 2013

Joe
Member

Re: Why do developers learn about weird programming languages?

First of all, I would really like to point that some of the languages we are talking about (Perl, Lua) are very widely used. Perl basically runs the Internet and Lua is extremely popular in the gaming industry. According to the the latest TIOBE ranking, Perl is the 9th most popular language, ahead of Ruby, JavaScript, VB.net, Matlab and Assembly. Lua is 21st, ahead of PL/SQL, Erlang, Scala and F#.

They might sound exotic in terms of web development (which, I concede, covers the vast majority of job offers in Lebanon), but if you ever step away from this world, you will find them more common than you would expect.

Why you should learn it anyway
esr wrote:

LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot.

This is a famous quote in the hacker world. And it's true.

We're curious about these languages because every time we pick up a new one, we find ourselves getting better at our day-job programming. I have no single doubt that learning Scheme made me a better Python programmer. It helped me understand generators, properties, classes, meta-programming, etc. Studying several different OOP systems helped me understand OOP better. Lua helps me understand prototypical inheritance, the way JavaScript never could.

You can see where I am going with this. Curiosity is more than looking for a new way to solve immediate problems. To me, looking at how people from other fields solve problems is incredibly interesting.

Also, you might use it

Let me repeat what others have said above. There is no silver bullet. Some tools are better than others at particular tasks, even if they are not very popular. 10 years ago, Python was considered exotic. If programmers weren't curious to look at what might've seemed like a toy language, we would still be writing websites in C.

Programmers are always afraid of how volatile our knowledge is, that whatever we learn today is quickly outdated. This is a real problem; you have got to face the fact that history shows there's a high probability you won't be working in .NET all your life. In that aspect:

  • Learning a new language is a skill that you should train. If you are used to picking up a new technology, you won't be afraid that your technology might become obsolete.

  • Core concepts slowly change. The libraries you're using are going to change often, this is true. However the basics are not that quick to change. Most of the recent updates in C++, Python and C# (and the general programming trend we're going through), are about rediscovering something academics have known for over 50 years. Learn them once, you can be sure you'll encounter them many times in your career.

Offline

Board footer