FAQ

On Sun, Nov 10, 2013 at 8:21 AM, Mark Janssen wrote:
I'd be interested to hear your thoughts on where the field of computer languages is heading, and how that affects the choice of languages for building web sites.
Well, there aren't that many groupings towards which languages
specialize for (not including embedded or other application-specific
domains). There's OS scripting, Web scripting, and then the otherwise
general-purpose "normative" languages in the middle of those two
extremes. But this view presumes a model of computation which hasn't
settled into wide agreement.

So, on what basis _would_ you choose a language for some purpose?
Without speaking specifically of web development here, how do you
choose a language?


* Some languages are just fundamentally bad. I do not recommend ever
writing production code in Whitespace, Ook, or Piet.


* Some languages force you to do a lot of bookkeeping, memory
management, etc. These are inferior unless their corresponding
advantages (usually performance or memory use) justify it.


* Some situations specifically demand one language. If you're writing
code to be deployed on cheap web servers, it's probably going to have
to be in PHP. If it's to run inside a web browser, it pretty much has
to be JavaScript, ActionScript, or maybe something that compiles to
one of those.


But that would still leave you with a good few choices. When it comes
down to it, how do you choose between Ruby, Python, Perl, Pike,
JavaScript, <insert language of choice here>, etcetera? I can think of
a few considerations that may or may not be important... and I'm sure
you can add more.


- Library support. For web work, it might be useful to be able to
create a PNG image on the fly (live graphs and such), or to have a
simple one-liner that handles cookies and persistence.


- Familiarity with the language. Why learn another one when you
already know this one?


- *Un*familiarity with the language. If you're going to have to learn,
may as well charge your boss for it!


- Proper Unicode support. For manipulating text, helps to be able to
work with it as text.


- Lack of proper Unicode support. Maybe it's easier to just work with
bytes everywhere? :)


- Ease/atomicity of deployment of new versions (maybe even while it's running)


- Buzzwordiness? If your boss asks you to choose a language and you
can say either "Ruby on Rails" or "CherryPy", are you more likely to
get approval for the former?


Something to throw open there. Citations from actual choices made a bonus. :)


ChrisA

Search Discussions

  • Mark Lawrence at Nov 9, 2013 at 11:24 pm

    On 09/11/2013 22:58, Chris Angelico wrote:
    * Some languages are just fundamentally bad. I do not recommend ever
    writing production code in Whitespace, Ook, or Piet.

    In my last job I was forced into using Apple(42 not so obvious ways to
    do it)Script. Yuck.


    --
    Python is the second best programming language in the world.
    But the best has yet to be invented. Christian Tismer


    Mark Lawrence
  • Mark Lawrence at Nov 10, 2013 at 1:05 am

    On 09/11/2013 23:24, Mark Lawrence wrote:
    On 09/11/2013 22:58, Chris Angelico wrote:

    * Some languages are just fundamentally bad. I do not recommend ever
    writing production code in Whitespace, Ook, or Piet.
    In my last job I was forced into using Apple(42 not so obvious ways to
    do it)Script. Yuck.

    I'd forgotten I'd used Monk back around 1999/2000. I couldn't remember
    much about it so just looked it up here
    http://docs.oracle.com/cd/E18867_01/SRE/Monk_Reference_SRE.pdf, not sure
    if it's double or triple yuck.


    Still, when you've been spoiled by Python for 10 years I guess anything
    else looks bad by definition :)


    --
    Python is the second best programming language in the world.
    But the best has yet to be invented. Christian Tismer


    Mark Lawrence
  • Chris Angelico at Nov 10, 2013 at 1:19 am

    On Sun, Nov 10, 2013 at 12:05 PM, Mark Lawrence wrote:
    I'd forgotten I'd used Monk back around 1999/2000. I couldn't remember much
    about it so just looked it up here
    http://docs.oracle.com/cd/E18867_01/SRE/Monk_Reference_SRE.pdf, not sure if
    it's double or triple yuck.
    From the contents page in that PDF:

    Chapter 1
    - Introduction 16
    - Document Purpose and Scope 16
    - Intended Audience 16
    - Organization of Information 17
    - Writing Conventions 18
    - For information on how to use a specific add-on product (for example, an e*Way
    Intelligent Adapter), see the user?s guide for that product. 19
    - SeeBeyond Web Site 20


    Page 19. Lolwut?


    ChrisA
  • Roy Smith at Nov 10, 2013 at 12:41 am

    On 09/11/2013 22:58, Chris Angelico wrote:

    * Some languages are just fundamentally bad. I do not recommend ever
    writing production code in Whitespace, Ook, or Piet.

    One of the worst coding experiences I ever had was trying to build an
    app for a Roku media player. They have a home-grown language called
    BrightScript. Barf.
  • Chris Angelico at Nov 10, 2013 at 12:53 am

    On Sun, Nov 10, 2013 at 11:41 AM, Roy Smith wrote:
    On 09/11/2013 22:58, Chris Angelico wrote:

    * Some languages are just fundamentally bad. I do not recommend ever
    writing production code in Whitespace, Ook, or Piet.
    One of the worst coding experiences I ever had was trying to build an
    app for a Roku media player. They have a home-grown language called
    BrightScript. Barf.

    And this is exactly why I was so strongly against the notion of
    developing an in-house scripting language. It may be a lot of work to
    evaluate Lua, Python, JavaScript, and whatever others we wanted to
    try, but it's a *lot* less work than making a new language that
    actually is worth using.


    ChrisA
  • Jorgen Grahn at Nov 10, 2013 at 8:56 am

    On Sun, 2013-11-10, Chris Angelico wrote:
    On Sun, Nov 10, 2013 at 11:41 AM, Roy Smith wrote:
    On 09/11/2013 22:58, Chris Angelico wrote:

    * Some languages are just fundamentally bad. I do not recommend ever
    writing production code in Whitespace, Ook, or Piet.
    One of the worst coding experiences I ever had was trying to build an
    app for a Roku media player. They have a home-grown language called
    BrightScript. Barf.
    And this is exactly why I was so strongly against the notion of
    developing an in-house scripting language. It may be a lot of work to
    evaluate Lua, Python, JavaScript, and whatever others we wanted to
    try, but it's a *lot* less work than making a new language that
    actually is worth using.

    Yes. I am baffled that people insist on doing the latter. Designing a
    limited /data/ language is often a good idea; designing something
    which eventually will need to become Turing-complete is not.


    /Jorgen


    --
       // Jorgen Grahn <grahn@ Oo o. . .
    \X/ snipabacken.se> O o .
  • 88888 Dihedral at Nov 11, 2013 at 5:51 pm

    On Sunday, November 10, 2013 4:56:38 PM UTC+8, Jorgen Grahn wrote:
    On Sun, 2013-11-10, Chris Angelico wrote:
    On Sun, Nov 10, 2013 at 11:41 AM, Roy Smith wrote:
    On 09/11/2013 22:58, Chris Angelico wrote:
    * Some languages are just fundamentally bad. I do not recommend ever
    writing production code in Whitespace, Ook, or Piet.
    One of the worst coding experiences I ever had was trying to build an
    app for a Roku media player. They have a home-grown language called
    BrightScript. Barf.

    And this is exactly why I was so strongly against the notion of
    developing an in-house scripting language. It may be a lot of work to
    evaluate Lua, Python, JavaScript, and whatever others we wanted to
    try, but it's a *lot* less work than making a new language that
    actually is worth using.


    Yes. I am baffled that people insist on doing the latter. Designing a

    limited /data/ language is often a good idea; designing something

    which eventually will need to become Turing-complete is not.

    Python is designed with the VM
    interpreter to execute compiled
    byte codes.


    Of course, C/C++/JAVA are lower
    level languages not designed in
    this way.


    To remedy the efficient part,
    cython and C-extensions are available
    in Python.
  • Mark Janssen at Nov 10, 2013 at 1:36 am

    On Sat, Nov 9, 2013 at 2:58 PM, Chris Angelico wrote:
    So, on what basis _would_ you choose a language for some purpose?
    Without speaking specifically of web development here, how do you
    choose a language?

    Most generally, you choose a language informed by the language
    designer's intentions of the language, usually stated explicitly. Of
    course, if you're in a constrained environment, then that is going to
    dictate your decision. After that, you're left with your own level
    of expertise regarding language design (which for many is not much)
    and the breadth of the field to examine (usually larger than most are
    familiar). This is an arena where PhD's are made.


    Obviously, languages just designed to [brain]f*ck with you, despite
    being theoretically complete, aren't much of a candidate for
    evaluation.

    But that would still leave you with a good few choices. When it comes
    down to it, how do you choose between Ruby, Python, Perl, Pike,
    JavaScript, <insert language of choice here>, etcetera? I can think of
    a few considerations that may or may not be important... and I'm sure
    you can add more.

    Among general purpose languages that pretty much offer the same
    benefits, the community often informs the decision.


    --
    MarkJ
    Tacoma, Washington
  • Wxjmfauth at Nov 11, 2013 at 9:28 am


    * Some languages are just fundamentally bad.

    The flexible string representation is a perfect exemple.


    Again, a short explanation:


    This FSR splits unicode in chunks. Two immediate consequences:
    - It's necessary to keep track of "each individual internal pieces of text".
    - It's necessary to waste time in switching between the internal coding
    schemes.


    Bad memory and bad performance at the same time.




    In fact, with such a mechanism, it is even impossible to write an editor.


    jmf






    I do not recommend ever
    writing production code in Whitespace, Ook, or Piet.



    * Some languages force you to do a lot of bookkeeping, memory

    management, etc. These are inferior unless their corresponding

    advantages (usually performance or memory use) justify it.



    * Some situations specifically demand one language. If you're writing

    code to be deployed on cheap web servers, it's probably going to have

    to be in PHP. If it's to run inside a web browser, it pretty much has

    to be JavaScript, ActionScript, or maybe something that compiles to

    one of those.



    But that would still leave you with a good few choices. When it comes

    down to it, how do you choose between Ruby, Python, Perl, Pike,

    JavaScript, <insert language of choice here>, etcetera? I can think of

    a few considerations that may or may not be important... and I'm sure

    you can add more.



    - Library support. For web work, it might be useful to be able to

    create a PNG image on the fly (live graphs and such), or to have a

    simple one-liner that handles cookies and persistence.



    - Familiarity with the language. Why learn another one when you

    already know this one?



    - *Un*familiarity with the language. If you're going to have to learn,

    may as well charge your boss for it!



    - Proper Unicode support. For manipulating text, helps to be able to

    work with it as text.



    - Lack of proper Unicode support. Maybe it's easier to just work with

    bytes everywhere? :)



    - Ease/atomicity of deployment of new versions (maybe even while it's running)



    - Buzzwordiness? If your boss asks you to choose a language and you

    can say either "Ruby on Rails" or "CherryPy", are you more likely to

    get approval for the former?



    Something to throw open there. Citations from actual choices made a bonus. :)



    ChrisA
  • Chris Angelico at Nov 11, 2013 at 9:55 am

    On Mon, Nov 11, 2013 at 8:28 PM, wrote:
    * Some languages are just fundamentally bad.
    The flexible string representation is a perfect exemple.

    Wow. A new low for you, jmf... comparing PEP 393 to Ook?!?

    In fact, with such a mechanism, it is even impossible to write an editor.

    And somehow a performance tradeoff makes Python no longer Turing complete.


    ChrisA
  • Mark Lawrence at Nov 11, 2013 at 2:40 pm

    On 11/11/2013 09:28, wxjmfauth at gmail.com wrote:

    * Some languages are just fundamentally bad.
    The flexible string representation is a perfect exemple.

    Again, a short explanation:

    This FSR splits unicode in chunks. Two immediate consequences:
    - It's necessary to keep track of "each individual internal pieces of text".
    - It's necessary to waste time in switching between the internal coding
    schemes.

    Bad memory and bad performance at the same time.


    In fact, with such a mechanism, it is even impossible to write an editor.

    jmf

    For the benefit of newbies, lurkers or whatever please ignore the
    rubbish written by "Joseph McCarthy" Faust regarding PEP 393 and the
    Flexible String Representation. He keeps making these false claims in
    double spaced google crap despite having been shot down in this thread
    https://groups.google.com/forum/#!topic/comp.lang.python/JkVQT0Wbq1A[1-25-false],
    where he was asked to provide evidence to support his claims. he didn't
    do so then, he's been asked repeatedly since to do so but hasn't because
    he can't, hence his newly aquired nickname.


    --
    Python is the second best programming language in the world.
    But the best has yet to be invented. Christian Tismer


    Mark Lawrence
  • Ethan Furman at Nov 11, 2013 at 5:32 pm

    On 11/11/2013 01:28 AM, wxjmfauth at gmail.com wrote:


    * Some languages are just fundamentally bad.
    The flexible string representation is a perfect exemple.

    Argh! He escaped! *chase* *scuffle* *stuff* *stuff* *stuff*


    Whew. Safely back in the troll bin.


    Okay, back to my day.


    --
    ~Ethan~

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppython-list @
categoriespython
postedNov 9, '13 at 10:58p
activeNov 11, '13 at 5:51p
posts13
users8
websitepython.org

People

Translate

site design / logo © 2022 Grokbase