Jump to content



Photo

Is dynamic typing on its way out?


  • Please log in to reply
24 replies to this topic

#16 OP Andre S.

Andre S.

    Asik

  • Tech Issues Solved: 6
  • Joined: 26-October 05

Posted 08 October 2013 - 21:30

Are you serious? robustness, performance and productivity of the JVM?

Better garbage collection, threading support and long-lived processes support was mentionned by the twitter engineers as advantages of the JVM over Ruby. Both Python and Ruby use a Global Interpreter Lock so multicore concurrency is basically impossible.

 

Not sure how you arrive to the conclusion that Java is "not performant at all": it compiles to optimized code near what good C++ compilers achieve;, it has a highly efficient, state-of-the-art garbage collector, native threads, little object overhead (at least compared to dynamic languages). The Hotspot JVM is a state-of-the-art runtime that makes even .NET look silly in places. Perhaps you were using a slow library; the language itself is certainly among the most performant available.

 

With mobile devices running on limited power, efficiency gets more important today than ever. The runtime overhead of dynamic languages is something that will put software using them at a disadvantage.




#17 Fahim S.

Fahim S.

    Neowinian Senior

  • Tech Issues Solved: 2
  • Joined: 15-April 02
  • OS: Windows 8 - OG
  • Phone: Google Nexus 4 16GB by LG

Posted 08 October 2013 - 21:44

Better garbage collection, threading support and long-lived processes support was mentionned by the twitter engineers as advantages of the JVM over Ruby. Both Python and Ruby use a Global Interpreter Lock so multicore concurrency is basically impossible.

 

Not sure how you arrive to the conclusion that Java is "not performant at all": it compiles to optimized code near what good C++ compilers achieve;, it has a highly efficient, state-of-the-art garbage collector, native threads, little object overhead (at least compared to dynamic languages). The Hotspot JVM is a state-of-the-art runtime that makes even .NET look silly in places. Perhaps you were using a slow library; the language itself is certainly among the most performant available.

 

With mobile devices running on limited power, efficiency gets more important today than ever. The runtime overhead of dynamic languages is something that will put software using them at a disadvantage.

 

If I wanted to build a highly scalable web application, I would prefer to do this using the reactor pattern rather than trying to build a monolithic, multithreaded application.  You could, of course, do this in Java.

 

You can't have been building commercial/enterprise grade applications for very long - because I don't know a single person who has that would agree that the best platform for building applications is Java, maybe they would have 5 years ago, but it's just not true anymore.



#18 OP Andre S.

Andre S.

    Asik

  • Tech Issues Solved: 6
  • Joined: 26-October 05

Posted 08 October 2013 - 22:03

If I wanted to build a highly scalable web application, I would prefer to do this using the reactor pattern rather than trying to build a monolithic, multithreaded application.  You could, of course, do this in Java.

And how will you scale without threads? Today's servers are highly multicore.
 

You can't have been building commercial/enterprise grade applications for very long - because I don't know a single person who has that would agree that the best platform for building applications is Java, maybe they would have 5 years ago, but it's just not true anymore.

 

I'm not much into Java but where I work we build large-scale enterprise grade software on .NET, which is very similar to Java in all fundamental respects. From first-hand experience I also know that if you want performance and efficiency in mobile applications, Javascript doesn't cut it; it's all C++, C# (Windows Phone), Objective-C (iOS) and Java (Android). Here's a very well researched article on the topic: http://sealedabstrac...-apps-are-slow/

 

Today's basic computing trends - highly parallel CPUs, battery-powered devices - all point towards languages and runtimes with high efficiency and first-class support for concurrency. 



#19 Fahim S.

Fahim S.

    Neowinian Senior

  • Tech Issues Solved: 2
  • Joined: 15-April 02
  • OS: Windows 8 - OG
  • Phone: Google Nexus 4 16GB by LG

Posted 08 October 2013 - 22:23

And how will you scale without threads? Today's servers are highly multicore.

 
You'd be surprised how much scalability you could achieve with a single thread and a non blocking reactor pattern based engine. See here.
If I wanted to use all of the cores (or threads) that my 'highly concurrent' server has to offer, I would run an application instance per thread.
 

I'm not much into Java but where I work we build large-scale enterprise grade software on .NET, which is very similar to Java in all fundamental respects. From first-hand experience I also know that if you want performance and efficiency in mobile applications, Javascript doesn't cut it; it's all C++, C# (Windows Phone), Objective-C (iOS) and Java (Android). Here's a very well researched article on the topic: http://sealedabstrac...-apps-are-slow/
 
Today's basic computing trends - highly parallel CPUs, battery-powered devices - all point towards languages and runtimes with high efficiency and first-class support for concurrency.


Just out of interest, how long have you been writing this 'large-scale' enterprise grade software using .NET?

#20 OP Andre S.

Andre S.

    Asik

  • Tech Issues Solved: 6
  • Joined: 26-October 05

Posted 08 October 2013 - 23:19

 
You'd be surprised how much scalability you could achieve with a single thread and a non blocking reactor pattern based engine. See here.
If I wanted to use all of the cores (or threads) that my 'highly concurrent' server has to offer, I would run an application instance per thread.

Well of course if you're I/O bound it doesn't matter that you're only using one core. Running multiple processes is an alternative but processes are much more heavyweight than threads and inter-process communication is inflexible.
 
Just out of interest, how long have you been writing this 'large-scale' enterprise grade software using .NET?

 

For about a year.

 

 



#21 +Brandon Live

Brandon Live

    Seattle geek

  • Joined: 08-June 03
  • Location: Seattle, WA

Posted 17 October 2013 - 20:10

I can't really comment on F# or Scala because my experience is either very limited or non-existent, but I can on TypeScript. It's really only popular with those who:

 

- can't wrap their head around ECMAScript 5-

- don't want to wrap their head around ECMAScript 5-

 

I don't understand this comment. What does one have to do with the other? My JS projects exclusively use ECMA 5 / strict mode. But this gives me nothing of what TypeScript offers.

 

TypeScript includes some very desirable ECMAScript 6 features (classes, arrow functions, etc). I haven't used it myself yet, but it seems like it's popular because it brings ECMA 6 features without waiting for JS engines to support EMCA 6 (which is itself gated on the standard settling down).



#22 +Brandon Live

Brandon Live

    Seattle geek

  • Joined: 08-June 03
  • Location: Seattle, WA

Posted 17 October 2013 - 20:45

 
You'd be surprised how much scalability you could achieve with a single thread and a non blocking reactor pattern based engine. See here.
If I wanted to use all of the cores (or threads) that my 'highly concurrent' server has to offer, I would run an application instance per thread.

 

That is so cute! They think async I/O and event loops are new! They even made up new names! That's almost as adorable as cats stealing dog beds :-)



#23 Fahim S.

Fahim S.

    Neowinian Senior

  • Tech Issues Solved: 2
  • Joined: 15-April 02
  • OS: Windows 8 - OG
  • Phone: Google Nexus 4 16GB by LG

Posted 18 October 2013 - 09:42

That is so cute! They think async I/O and event loops are new! They even made up new names! That's almost as adorable as cats stealing dog beds :-)

 

Who thinks that?



#24 +Brandon Live

Brandon Live

    Seattle geek

  • Joined: 08-June 03
  • Location: Seattle, WA

Posted 18 October 2013 - 18:11

Who thinks that?

 

I was referring to that link you posted and their presentation. At least the way I read it, it seemed pretty funny.



#25 Fahim S.

Fahim S.

    Neowinian Senior

  • Tech Issues Solved: 2
  • Joined: 15-April 02
  • OS: Windows 8 - OG
  • Phone: Google Nexus 4 16GB by LG

Posted 19 October 2013 - 00:14

I was referring to that link you posted and their presentation. At least the way I read it, it seemed pretty funny.


Thanks for answering. The pattern has been around for a while but see how it could be interpreted that way. No idea if that's what they meant though



Click here to login or here to register to remove this ad, it's free!