Chris's Wiki :: blog/programming/LanguageNiches Commentshttps://utcc.utoronto.ca/~cks/space/blog/programming/LanguageNiches?atomcommentsDWiki2007-08-21T14:55:47ZRecent comments in Chris's Wiki :: blog/programming/LanguageNiches.From 64.128.222.7 on /blog/programming/LanguageNichestag:CSpace:blog/programming/LanguageNiches:8405ea9bb3f3df42c5a88df5a5ad324e90b47249From 64.128.222.7<div class="wikitext"><p>I sort of secretly hope that functional programming languages become the next big thing, not because I actually know how to use them (I'm just starting to learn Erlang), but because from what I've read they are really well-suited for the multi-core and high-concurrency world we are going to see in the near future.</p>
<p>This is, however, pretty unlikely. I can foresee them getting a big 'market share' in terms of their popularity among developers, but the big enterprises are going to want to cling to their C++ / Java / .NET codebase and expertise as much as possible, and try as hard as possible to use some sort of new threading paradigm that makes it easier to use.</p>
<p>I also think your definition of 'niche' is a little too broad. My understanding of programming niches pertain more to how they are used rather than how they are structured. Thus, niches are a little different:</p>
<p>*Blazing fast systems / games : C/C++
*"Enterprisey" systems / webapps / mobile applications : Java
*Web 2.0 / Whizbang Apps : Ruby
*'Glue' code / hybrid code using C/C++ libs for heavy lifting : Python
*Web 1.0 / HTML and/or text processing : Perl and PHP</p>
</div>2007-08-21T14:55:47ZBy Chris Siebenmann on /blog/programming/LanguageNichestag:CSpace:blog/programming/LanguageNiches:73ed44f13bac4c4ce2497a1eff127dc187e742b9Chris Siebenmann<div class="wikitext"><p>The stereotypes are not necessarily <a href="https://utcc.utoronto.ca/~cks/space/blog/python/IndustrialPython">my views</a>;
they are representative of the general things I hear. One of those is
that there are still a lot of people who feel that dynamically typed
languages will or do not scale to large systems, and that large systems
need various sorts of static (compile-time) assurance.
This may or may not be true, but given that it is perceptions that drive
language choices I think that for the immediate future there is going to
be a large niche for loose statically assured languages, precisely because
there is a large enough group of people who want such languages to build
their big systems (and to enable <a href="https://utcc.utoronto.ca/~cks/space/blog/programming/KnowledgeVersusProof">'reliable'</a> IDE
based refactoring and so on).</p>
<p>Parallelism is <a href="https://utcc.utoronto.ca/~cks/space/blog/tech/EconomicsOfCPUPerformance">another topic</a>, and
I am not sure that it is going to play out the way that the CPU vendors
would like it to. If it does, I think that we will wind up with better
primitives than threading, whether this is through new languages or
extensions on existing ones.</p>
</div>2007-08-20T20:41:12ZFrom 76.102.131.84 on /blog/programming/LanguageNichestag:CSpace:blog/programming/LanguageNiches:3efd924e2c895ac6233f147794195a507751d57cFrom 76.102.131.84<div class="wikitext"><p>Had the article been written in 1997, you would have probably said that only C and C++ are worthwhile niches, and maybe Java "because Sun has given it traction."</p>
<p>Computing environments change. Everyone's looking for better parallelism now; when that happens we'll see a new set of languages.</p>
</div>2007-08-20T18:59:28ZFrom 86.121.194.201 on /blog/programming/LanguageNichestag:CSpace:blog/programming/LanguageNiches:0cb5d74ee750ef5a3afacc60bb29c95a92b6796aFrom 86.121.194.201<div class="wikitext"><p>Interesting.</p>
<p>Why do you consider Python suitable only for small-scale systems?</p>
<p>Do you consider an air ticket reservation system small scale?
<a href="http://www.eweek.com/article2/0,1895,2100629,00.asp">http://www.eweek.com/article2/0,1895,2100629,00.asp</a></p>
</div>2007-08-20T16:39:04Z