Does it make sense to design languages for smart people?

View: New views
14 Messages — Rating Filter:   Alert me  

Does it make sense to design languages for smart people?

by Amir Michail :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

Hi,

Haskell strikes me as such a language.  There's no way it will become
mainstream simply because most programmers are not smart enough to use
it.

Scala might suffer a bit from this, at least for people who want to
use its more advanced features.  But it's much better than Haskell in
that respect.

So does it make sense to design languages for smart people?  If so, up
to what IQ?

Amir

Re: Does it make sense to design languages for smart people?

by Viktor Klang :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message



On Jan 4, 2008 8:54 PM, Amir Michail <amichail@...> wrote:
Hi,

Haskell strikes me as such a language.  There's no way it will become
mainstream simply because most programmers are not smart enough to use
it.

Scala might suffer a bit from this, at least for people who want to
use its more advanced features.  But it's much better than Haskell in
that respect.

So does it make sense to design languages for smart people?  If so, up
to what IQ?

Do you mind if I hold my answer for a week or two?
I'm waiting for the MENSA results... ;D

Cheers man,
-Viktor
 

Amir



--
_____________________________________
/                                                                 \
       /lift/ committer ( www.liftweb.net)
     SGS member (Scala Group Sweden)
 SEJUG member (Swedish Java User Group)
\_____________________________________/

Re: Does it make sense to design languages for smart people?

by Jamie Webb-2 :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

On 2008-01-04 14:54:07 Amir Michail wrote:

> Hi,
>
> Haskell strikes me as such a language.  There's no way it will become
> mainstream simply because most programmers are not smart enough to use
> it.
>
> Scala might suffer a bit from this, at least for people who want to
> use its more advanced features.  But it's much better than Haskell in
> that respect.
>
> So does it make sense to design languages for smart people?  If so, up
> to what IQ?

First, you must distinguish between 'smart' and 'well educated'. Smart
people are able to become educated much more quickly, but that doesn't
mean that the average Java monkey couldn't be taught to use Haskell if
it were required for his job.

/J

Re: Does it make sense to design languages for smart people?

by Viktor Klang :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message



On Jan 4, 2008 9:09 PM, Jamie Webb <j@...> wrote:
On 2008-01-04 14:54:07 Amir Michail wrote:

> Hi,
>
> Haskell strikes me as such a language.  There's no way it will become
> mainstream simply because most programmers are not smart enough to use
> it.
>
> Scala might suffer a bit from this, at least for people who want to
> use its more advanced features.  But it's much better than Haskell in
> that respect.
>
> So does it make sense to design languages for smart people?  If so, up
> to what IQ?

First, you must distinguish between 'smart' and 'well educated'. Smart
people are able to become educated much more quickly, but that doesn't
mean that the average Java monkey couldn't be taught to use Haskell if
it were required for his job.

Given a sufficient stock of bananas :)
 


/J



--
_____________________________________
/                                                                 \
       /lift/ committer ( www.liftweb.net)
     SGS member (Scala Group Sweden)
 SEJUG member (Swedish Java User Group)
\_____________________________________/

Re: Does it make sense to design languages for smart people?

by hohonuuli-2 :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message


>  most programmers are not smart enough to use t.
>
> So does it make sense to design languages for smart people?  If so, up
> to what IQ?

I keep seeing this kind of arrogant BS on this list. There are many reasons
people choose not to use Scala
or Haskell; I don't think 'lack of intellegence" is a significant factor. More
prominant factors include:
- Scala is not relevant to thier job
- Scala documentation is very academic and incomplete.
- Scala syntax can be odd (i.e. overly compact and the code's intentions
 can be hidden)
- Lack of good tools for working with Scala.
- Stability and compatibility with Java is not quite there yet (e.g. where's
 a good Java-Scala cross compiler)
- People can get there job done with existing, well-established languages
- etc. etc.

So, please cool it with the "I code in Scala so I'm smarter than other
programmers"; all you're telling the world is "Hey, I'm an arrogant
assh0l3"

Cheers






Re: Re: Does it make sense to design languages for smart people?

by Viktor Klang :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message



On Jan 4, 2008 9:49 PM, hohonuuli <hohonuuli@...> wrote:

>  most programmers are not smart enough to use t.
>
> So does it make sense to design languages for smart people?  If so, up
> to what IQ?

I keep seeing this kind of arrogant BS on this list. There are many reasons
people choose not to use Scala
or Haskell; I don't think 'lack of intellegence" is a significant factor. More
prominant factors include:
- Scala is not relevant to thier job
- Scala documentation is very academic and incomplete.
- Scala syntax can be odd (i.e. overly compact and the code's intentions
 can be hidden)
- Lack of good tools for working with Scala.
- Stability and compatibility with Java is not quite there yet (e.g. where's
 a good Java-Scala cross compiler)
- People can get there job done with existing, well-established languages
- etc. etc.

Heeeeeyyyyyy!

Easy on the keys man!
Surely Amir's post was a joke,
lighten up, everything's not life and death you know.
 

Have a great weekend,

Cheers,
-Viktor



So, please cool it with the "I code in Scala so I'm smarter than other
programmers"; all you're telling the world is "Hey, I'm an arrogant
assh0l3"

Cheers








--
_____________________________________
/                                                                 \
       /lift/ committer ( www.liftweb.net)
     SGS member (Scala Group Sweden)
 SEJUG member (Swedish Java User Group)
\_____________________________________/

Re: Re: Does it make sense to design languages for smart people?

by Amir Michail :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

On Jan 4, 2008 3:56 PM, Viktor Klang <viktor.klang@...> wrote:
> ...
>
> Heeeeeyyyyyy!
>
> Easy on the keys man!
> Surely Amir's post was a joke,
> lighten up, everything's not life and death you know.
>

This is a serious question.  Surely, when designing a language you
must take into account how much intelligence is required to learn and
use it effectively.  This is not arrogance -- but rather, part of the
job of a language designer.  People have to think about such things
when designing other artifacts such as cars, TVs, etc.

Amir

>
> Have a great weekend,
>
> Cheers,
> -Viktor
>
>
> >
> >
> > So, please cool it with the "I code in Scala so I'm smarter than other
> > programmers"; all you're telling the world is "Hey, I'm an arrogant
> > assh0l3"
> >
> > Cheers
> >
> >
> >
> >
> >
> >
>
>
>
>
> --
>  _____________________________________
> /                                                                 \
>         /lift/ committer ( www.liftweb.net)
>       SGS member (Scala Group Sweden)
>   SEJUG member (Swedish Java User Group)
> \_____________________________________/

Re: Re: Does it make sense to design languages for smart people?

by Viktor Klang :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message



On Jan 4, 2008 10:06 PM, Amir Michail <amichail@...> wrote:
On Jan 4, 2008 3:56 PM, Viktor Klang <viktor.klang@...> wrote:
> ...
>
> Heeeeeyyyyyy!
>
> Easy on the keys man!
> Surely Amir's post was a joke,
> lighten up, everything's not life and death you know.
>

This is a serious question.  Surely, when designing a language you
must take into account how much intelligence is required to learn and
use it effectively.  This is not arrogance -- but rather, part of the
job of a language designer.  People have to think about such things
when designing other artifacts such as cars, TVs, etc.

Allright, there we go...

I actually think you're way over-simplifying it.
"Intelligence" is just one parameter, and I'll throw some more into the fray:

consistency (much related to intuition)
expressibility
expandability
familiarity
creativity
simplicity/complexity  ratio(where "simple" means less parts, and "complex" means more parts)
wholeness
purpose

and a whole lot of other parameters I, in my feverish state, must be missing.
 
@Hohonuuli

Personally I do _not_ feel that Scala is a community of smug people, sitting on high horses, laughing at the slaving Java devs down below.
Heck, I have made my living off of Java for 5 years straight now.

Where you see arrogance, I see a crowd of cool fun-loving guys (and girls?) who have one thing particular in common : their interest in doing some wickedly cool stuff with this new shiny tool they just found (sorry JonP and DaveP and the rest of you who actually found Scala way back ;) )

Cheers,
Viktor


Amir

>
> Have a great weekend,
>
> Cheers,
> -Viktor
>
>
> >
> >
> > So, please cool it with the "I code in Scala so I'm smarter than other
> > programmers"; all you're telling the world is "Hey, I'm an arrogant
> > assh0l3"
> >
> > Cheers
> >
> >
> >
> >
> >
> >
>
>
>
>
> --
>  _____________________________________
> /                                                                 \
>         /lift/ committer ( www.liftweb.net)
>       SGS member (Scala Group Sweden)
>   SEJUG member (Swedish Java User Group)
> \_____________________________________/



--
_____________________________________
/                                                                 \
       /lift/ committer (www.liftweb.net)
     SGS member (Scala Group Sweden)
 SEJUG member (Swedish Java User Group)
\_____________________________________/

Re: Does it make sense to design languages for smart people?

by tmorris :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jamie Webb wrote:

> On 2008-01-04 14:54:07 Amir Michail wrote:
>> Hi,
>>
>> Haskell strikes me as such a language.  There's no way it will become
>> mainstream simply because most programmers are not smart enough to use
>> it.
>>
>> Scala might suffer a bit from this, at least for people who want to
>> use its more advanced features.  But it's much better than Haskell in
>> that respect.
>>
>> So does it make sense to design languages for smart people?  If so, up
>> to what IQ?
>
> First, you must distinguish between 'smart' and 'well educated'. Smart
> people are able to become educated much more quickly, but that doesn't
> mean that the average Java monkey couldn't be taught to use Haskell if
> it were required for his job.
>
> /J
>
>
>

I know people personally who would probably be considered "Java monkeys"
and are still struggling with basic mistakes in Haskell (for example,
not knowing how to reason about lazy programs), 18 months after picking
it up. I have doubt about the statement that the average Java monkey
could be taught to use Haskell; you need only look at all the myths that
surround the language (Someone wrote them all up recently I think?),
since where do they come from?

I ran a 2-day Scala training course last year initiated by Red Hat/JBoss
(where we also touched on Haskell), which I am running again next week.
I have also recently written a commercial web application using Scala
with others who were unfamiliar with higher-level concepts. I am forming
the opinion that using Haskell effectively does indeed have a minimum
required level of "something" that is above the median. I hypothesise
that "something" is "the ability to externalise deeply held
preconceptions for critical analysis and readily accepting falsification".

Not all people are capable of this, but children certainly are :)

- --
Tony Morris
http://tmorris.net/

Hey! We had 40,000 lines of C# here yesterday, but now there are 40
lines of... Dear God, what is a catamorphism?"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHfqNlmnpgrYe6r60RAimgAJsG6UAmYy8wdAXKnVp1Xc/Xc2bPxQCeL13W
N+7kKjeJqhfk5NGRAWPDnpQ=
=FkNg
-----END PGP SIGNATURE-----

Re: Re: Does it make sense to design languages for smart people?

by Frantisek Sodomka :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

Let me flip it around: If you are developing complex software using less  
expressive tools, it means that you actually have to work harder to get it  
done. It implies more thinking and creative approaches. Wouldn't that mean  
that Java programmers are actually smarter than Scala programmers? ;-)))

[Back to serious mode] :-)

Amir is suggesting that more complicated languages get used less often.  
And guess what - he is right. Scala's advantage is that it allows both  
low-level and high-level style of programming, so you start with what you  
know and like and slowly progress to more advanced parts. Expert users can  
write cool libraries and other users just use them. I think that's fair.  
No pushing you one way or the other.

:: Frantisek


On Fri, 04 Jan 2008 22:18:35 +0100, Viktor Klang <viktor.klang@...>  
wrote:

> On Jan 4, 2008 10:06 PM, Amir Michail <amichail@...> wrote:
>
>> On Jan 4, 2008 3:56 PM, Viktor Klang <viktor.klang@...> wrote:
>> > ...
>> >
>> > Heeeeeyyyyyy!
>> >
>> > Easy on the keys man!
>> > Surely Amir's post was a joke,
>> > lighten up, everything's not life and death you know.
>> >
>>
>> This is a serious question.  Surely, when designing a language you
>> must take into account how much intelligence is required to learn and
>> use it effectively.  This is not arrogance -- but rather, part of the
>> job of a language designer.  People have to think about such things
>> when designing other artifacts such as cars, TVs, etc.
>>
>
> Allright, there we go...
>
> I actually think you're way over-simplifying it.
> "Intelligence" is just one parameter, and I'll throw some more into the
> fray:
>
> consistency (much related to intuition)
> expressibility
> expandability
> familiarity
> creativity
> simplicity/complexity  ratio(where "simple" means less parts, and  
> "complex"
> means more parts)
> wholeness
> purpose
>
> and a whole lot of other parameters I, in my feverish state, must be
> missing.
>
> @Hohonuuli
>
> Personally I do _not_ feel that Scala is a community of smug people,  
> sitting
> on high horses, laughing at the slaving Java devs down below.
> Heck, I have made my living off of Java for 5 years straight now.
>
> Where you see arrogance, I see a crowd of cool fun-loving guys (and  
> girls?)
> who have one thing particular in common : their interest in doing some
> wickedly cool stuff with this new shiny tool they just found (sorry JonP  
> and
> DaveP and the rest of you who actually found Scala way back ;) )
>
> Cheers,
> Viktor
>
>
>> Amir
>>
>> >
>> > Have a great weekend,
>> >
>> > Cheers,
>> > -Viktor
>> >
>> >
>> > >
>> > >
>> > > So, please cool it with the "I code in Scala so I'm smarter than  
>> other
>> > > programmers"; all you're telling the world is "Hey, I'm an arrogant
>> > > assh0l3"
>> > >
>> > > Cheers
>> > >
>> > >
>> > >
>> > >
>> > >
>> > >
>> >
>> >
>> >
>> >
>> > --
>> >  _____________________________________
>> > /                                                                 \
>> >         /lift/ committer ( www.liftweb.net)
>> >       SGS member (Scala Group Sweden)
>> >   SEJUG member (Swedish Java User Group)
>> > \_____________________________________/
>>
>
>
>



Re: Re: Does it make sense to design languages for smart people?

by Stanislas Klimoff-3 :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

On 1/5/08, Frantisek Sodomka <fanda@...> wrote:
Scala's advantage is that it allows both
low-level and high-level style of programming, so you start with what you
know and like and slowly progress to more advanced parts. Expert users can
write cool libraries and other users just use them. I think that's fair.
No pushing you one way or the other.

That leads to segregation. When I deal with Java, I'm pretty sure I can look through the sources of most open-source libraries, introduce some enhancements I need or smash some nasty bug. Developers are more or less on the same page. I don't do Haskell, but I believe it requires some understanding of advanced concepts just to dive in, because it prohibits imperative style — that's it, developers are speaking the same language again. 

But what about Scala? Sure, a hybrid language boosts the productivity of a single developer, at the same time offering a somewhat smooth learning curve. How about groups of developers? I don't think I'll be able to benefit from open sourcing software written on Scala — I'm a very average developer and I've never been dealing with something more advanced than Scheme or SML.

On the other side, Scala gurus won't be interested in contribution into a mediocre open-source project; to contribute efficiently, they need some advanced constructs that simply won't be present in a given ecosystem.

Indeed that was just a speculation, but — what do you think, guys?

--
Best wishes,
  Stan Klimoff
  Grid Dynamics Consulting

Re: Re: Does it make sense to design languages for smart people?

by tmorris :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Stanislas Klimoff wrote:
> because it prohibits imperative style

This is a common misunderstanding. Actually, Haskell is a great
imperative language.

- --
Tony Morris
http://tmorris.net/

Hey! We had 40,000 lines of C# here yesterday, but now there are 40
lines of... Dear God, what is a catamorphism?"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHfrDqmnpgrYe6r60RAiEpAJ0Rij1boN524LacUe42uaruwcprKACgnb8i
KvWnmJ44CupNJ9RmK/YIw8s=
=GZMN
-----END PGP SIGNATURE-----

Re: Re: Does it make sense to design languages for smart people?

by Erik Engbrecht :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

Please forgive Amir's questions.  He frequently annoys the "smartest people" here on the list, but if you get past the...ummm...blundt way he phrases them, he's usually saying something interesting and I think he sparked a few of the more interesting converstations here.
 
Part of being a community is tolerating each others' idiosyncracies, and letting it go when ones' idiosyncracies are not tolerated.
 
Ok, enough touchy-feely stuff....
 
Amir,
I think it depends on your objectives for the language.  A programming language is a tool that is engineered for a purpose.  The way it is engineered is entirely dependent on that purpose.  Programmer's are the users of a language.  They define the market.  If you make a language that is inaccessible to too much of the market, then you are limiting your potential market.  But sometimes it is better to be a big fish in a small pond.
 
That being said I think "smart" is the wrong word.  Most programmers have, at least relative to the general population, pretty high IQs.  I think it's more a question of how much time should there be from flash to bang.  A lot of Scala has strong theoretical underpinnings.  Theory generally takes so long to go from flash to bang that many people get bored before they even see the flash.

You don't need to know the theory to program well in Scala, but watching the list makes it clear that if you don't know the theory you are never going to be one of the best Scala programmers.  Most programmers don't have a computer science background, and of the ones that do, most have willfully forgotten it.
 
So in that way Scala is kind of scary, because in order to *really* know it, you're going to have to know a fair amount of graduate-level CS.  That's a big investment for someone who is accustomed to being an expert in a language like Java, probably too big for many people.
 
Of course what's required is some perspective.  I don't think David Pollak is an expert in lambda calculus or category theory.  But he is doing amazing things with Scala, and probably picking up pieces of the relevant theory as he goes.
 
Anyway, I think the key to being a successful language is having good documentation that enables people to quickly achieve results.  Lots of robust libraries are also a big plus.  Scala falls down in both these areas, but I think that can be readily corrected as the community reaches critical mass.
 
-Erik
 

 
On 1/4/08, hohonuuli <hohonuuli@...> wrote:

>  most programmers are not smart enough to use t.
>
> So does it make sense to design languages for smart people?  If so, up
> to what IQ?

I keep seeing this kind of arrogant BS on this list. There are many reasons
people choose not to use Scala
or Haskell; I don't think 'lack of intellegence" is a significant factor. More
prominant factors include:
- Scala is not relevant to thier job
- Scala documentation is very academic and incomplete.
- Scala syntax can be odd (i.e. overly compact and the code's intentions
can be hidden)
- Lack of good tools for working with Scala.
- Stability and compatibility with Java is not quite there yet (e.g. where's
a good Java-Scala cross compiler)
- People can get there job done with existing, well-established languages
- etc. etc.

So, please cool it with the "I code in Scala so I'm smarter than other
programmers"; all you're telling the world is "Hey, I'm an arrogant
assh0l3"

Cheers








--
http://erikengbrecht.blogspot.com/

Re: Re: Does it make sense to design languages for smart people?

by David Bernard-3 :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

Stanislas Klimoff wrote:

> On 1/5/08, *Frantisek Sodomka* <fanda@...
> <mailto:fanda@...>> wrote:
>
>     Scala's advantage is that it allows both
>     low-level and high-level style of programming, so you start with
>     what you
>     know and like and slowly progress to more advanced parts. Expert
>     users can
>     write cool libraries and other users just use them. I think that's
>     fair.
>     No pushing you one way or the other.
>
>
> That leads to segregation. When I deal with Java, I'm pretty sure I can
> look through the sources of most open-source libraries, introduce some
> enhancements I need or smash some nasty bug. Developers are more or less
> on the same page. I don't do Haskell, but I believe it requires some
> understanding of advanced concepts just to dive in, because it prohibits
> imperative style — that's it, developers are speaking the same language
> again.
>
> But what about Scala? Sure, a hybrid language boosts the productivity of
> a single developer, at the same time offering a somewhat smooth learning
> curve. How about groups of developers? I don't think I'll be able to
> benefit from open sourcing software written on Scala — I'm a very
> average developer and I've never been dealing with something more
> advanced than Scheme or SML.

I'm a java developer since 10 years.
I started to implement an other scaladoc. I started from the existing one.
I found an overdesigned implementation, that use very complex (IMHO) structure and hard to read/understand for simple things.
May the developer know functionnal language but about OO, he abuse usage of "extends" instead of composition.
Sorry if I'm a little "agressive", it always the case after a fight against a code. ;)

I also have the syndrom of overkill/overdesign, I grow with Design Pattern (GoF), reusability.
And every days I fights against myselft to KISS my code (Keep It Simple Stupid) and readable.

Scala is "young" and grow quickly, and it merge to world (OO + functionnal) so good practice need to be found (to educate developer).

> On the other side, Scala gurus won't be interested in contribution into
> a mediocre open-source project; to contribute efficiently, they need
> some advanced constructs that simply won't be present in a given ecosystem.
>
> Indeed that was just a speculation, but — what do you think, guys?

May be gurus don't want to share the power (knowledge) ;)

/davidB
>
> --
> Best wishes,
>   Stan Klimoff
>   Grid Dynamics Consulting

LightInTheBox - Buy quality products at wholesale price!