Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Python Java Perl Programming

Historic 'Summit' with the Creators of Python, Java, TypeScript, and Perl (packtpub.com) 84

"At the first annual charity event conducted by Puget Sound Programming Python on April 2, four legendary language creators came together to discuss the past and future of language design," reports PacktPub.

- Guido van Rossum, the creator of Python
- James Gosling, the founder, and lead designer behind the Java programming language
- Anders Hejlsberg, the original author of Turbo Pascal who has also worked on the development of C# and TypeScript
- Larry Wall, the creator of Perl

You can watch the video here -- the speaker introductions start about 50 minutes into the video-- or read PacktPub's summary of the event: Guido van Rossum said designing a programming language is very similar to the way JK Rowling writes her books, the Harry Potter series... He says JK Rowling is a genius in the way that some details that she mentioned in her first Harry Potter book ended up playing an important plot point in part six and seven... When designing a language we start with committing to certain details like the keywords we want to use, the style of coding we want to follow, etc. But, whatever we decide on we are stuck with them and in the future, we need to find new ways to use those details, just like Rowling...

When James Gosling was asked how Java came into existence and what were the design principles he abided by, he simply said, "it didn't come out of like a personal passion project or something. It was actually from trying to build a prototype.... It started out as kind of doing better C and then it got out of control that the rest of the project really ended up just providing the context." In the end, the only thing out of that project survived was Java...

Larry Wall wanted to create a language that was more like a natural language. Explaining through an example, he said, "Instead of putting people in a university campus and deciding where they go we're just gonna see where people want to walk and then put shortcuts in all those places." A basic principle behind creating Perl was to provide APIs to everything. It was aimed to be both a good text processing language linguistically but also a glue language....

Similar to the views of Guido van Rossum, Anders Hejlsberg adds that any decision that you make when designing a language you have to live with it. When designing a language you need to be very careful about reasoning over what "not" to introduce in the language.

There was also some discussion of types -- Gosling believes they help improve performance, while Hejlsberg said types are also useful when building coding tools. "It turns out that you can actually be more productive by adding types if you do it in a non-intrusive manner and if you work hard on doing good type inference and so forth." In fact, Hejlsberg told the audience that the TypeScript project was inspired by massive "write-only" JavaScript code bases, while a semantic understanding (including a type system) makes refactoring easier.

Guido van Rossum acknowledged that TypeScript "is actually incredibly useful and so we're adding a very similar idea to Python. We are adding it in a slightly different way because we have a different context.... I've learned a painful lesson, that for small programs dynamic typing is great. For large programs, you have to have a more disciplined approach. And it helps if the language actually gives you that discipline, rather than telling you, 'Well, you can do whatever you want.'"

In the video Larry Wall says the Perl 6 team had also noticed the limitations of loose typing, and added a robust type system to Perl 6 to "help with programming in the large."

This was the first annual benefit for CSforALL, a group promoting high-quality computer science classes at every grade level.
This discussion has been archived. No new comments can be posted.

Historic 'Summit' with the Creators of Python, Java, TypeScript, and Perl

Comments Filter:
  • The mind-numbing language snobbery and Trump spam.

  • by fahrbot-bot ( 874524 ) on Sunday April 21, 2019 @03:25PM (#58468196)

    ... van Rossum asked the speakers step back when they started to talk and then step forward when they were done.

  • by cjonslashdot ( 904508 ) on Sunday April 21, 2019 @03:27PM (#58468202)
    âoeI've learned a painful lesson, that for small programs dynamic typing is great. For large programs, you have to have a more disciplined approach. And it helps if the language actually gives you that discipline, rather than telling you, 'Well, you can do whatever you want.'"â
    • by Anonymous Coward

      This isn't anything real programmers didn't already know.

    • Just to be clear, he isn't FOR static typing. He still leans dynamic & duck typing. But he does recognize the importance of type coordination and standards; especially in big projects.

      He actually considered the idea of type validation back in 2.x of Python. But the community didn't have good ideas on implementation. Back in late 2014, type annotations were introduced to the 3.x branch.

      These annotations are like JavaDocs and allow a pre-processor, validator, or IDE to pre-validate your code. Similar to

      • Hi. That works, but I have found that when I use a statically typed language, I don't need to have many - if any - unit tests. (Note that I perform careful design of my algorithms, in pseudocode, and they pretty much always work the first time.) I generally only have behavioral tests, which I write as I code. I have found that when using Java or Go, type safety seems to prevent any errors from being introduced during refactoring, even for very large codebases. But when I use a language such as Ruby or Pytho

        • by orlanz ( 882574 )

          I have never worked on a medium or large project in C, C++, Java, nor Erlang that didn't have a barrage of testing. All had entire teams dedicated to doing testing. The Perl (yes Perl) and Python projects actually has smaller test teams (more was automated; due to the quacks like a duck concept).

          I have never asked a co-worker if their function always returns XXX. What the hell is documentation for if not _atleast_ that? The dev can write & debug hundreds of lines of code, but can't update 2-3 lines

          • by epine ( 68316 )

            I only need to know if it has certain capabilities. I don't need to know if the returned item is a "car".

            Depends how your team is organized. "car" might be a conceptual bundle of capabilities that everyone on the team uses to reason of what operations are legal or not legal.

            I only need to know if it can go on roads from point A to point B and has a license plate.

            That's what you think. But the next piece of code also depends upon headlights, and you didn't get the post-war memo. And the next piece of code a

            • by orlanz ( 882574 )

              The "conceptual bundle of capabilities" is the core problem I have with static typing. This is assumed, demanded, and enforced by the dev chain. The last two bits are the problem. Because everyone has basically agreed on the whole, any minor change is a bureaucratic nightmare, only alleviated by the type safe checking tools _after_ the decision has been made. That first part is GRRR. On the dynamic side, we have more flexibility to change parts independently as long as the returned interfaces don't chang

          • Yes, a-lot of the Java frameworks are a big tax. Spring for example. But that is the fault of the framework. Also, I don't claim that Java is a great language. Scala dispenses with a-lot of the verbosity of Java, but preserves its type safety.

            I did not say that testing is not necessary. I said that the safety net of unit tests is unnecessary with typesafe languages: when refactoring, the safety net of type safety is so powerful, IME, that unit tests are not needed as a safety net. (You might write unit te

            • by orlanz ( 882574 )

              Yes, our experiences are different; but probably similar on Ruby. They went far too with "turtles all the way down" and you end up coding while balancing 8 turtles up. I have had too many "you didn't have to do this; you did just because you could!" moments in that world.

              I like C. I honestly can't see it in a non-static context. The whole header file concept just feels simplistic and lean enough to provide a good balance on flexibility & rigidness. Java, & C++ seem to have piled on too much mid

              • Yes, C++ is a complex pile-on. I agree about C. A few years ago I had written something in Ruby, and then discovered that it could not be made to work (I forget why), and so I re-coded it in C. It was about 300 lines, and it took me half an hour to code it. Note that I had not yet achieved a running program in Ruby or C. The C program worked the first time - the first time. Its function was to parse the output of tcpdump. I only used the standard C libraries. And - get this - I had not written a C program i

      • But the community didn't have good ideas

        Excellent summary.

  • by fahrbot-bot ( 874524 ) on Sunday April 21, 2019 @03:31PM (#58468210)

    Guido van Rossum said designing a programming language is very similar to the way JK Rowling writes her books, the Harry Potter series...

    One made a billion dollars, the other a billion Tabs. :-)

  • This guy single-handedly brought all computers the world over to their knees for 20 years until they finally got fast enough to feel usable again, and also turned CS universities into manufactures of talentless line pissers.

    • by Junta ( 36770 )

      turned CS universities into manufactures of talentless line pissers.

      Nope, that would be the effect of people deciding that programmer was a relatively way to get ta a six-figure salary. The resultant gold rush combined with the happy accident that Java has been the language of choice for CS curriculum when the rush hit has to some extent unfairly made Java look worse.

      I'm not a fan of Java, but the vast majority of end-user problems would have come from any language in Java's position given the circumstances.

    • https://en.wikipedia.org/wiki/... [wikipedia.org]

      I think a better metaphor is the infamous meeting of top-level organized crime bosses. The fictional version of this event in The Godfather was the negotiation of a peace treaty among warring crime "families"? Putting the word "organized" back into organized crime?

      Here, the computer-language bosses got together to say nice things and complete each other's sentences?

  • by PPH ( 736903 )

    No Admiral Grace Hopper?

    I know. She's dead. But that's not stopping Ruth Bader Ginsburg from showing up for work.

  • I'm sorry, but comparing the design of a software language to the "design" of Harry Potter is a poor comparison. The Harry Potter books, from an overall plot and design perspective, are not written very well. The magic / magical devices that are introduced as the series progresses would have been extremely useful for resolving the plots in earlier books, and vice versa. For example, the ability to perform time travel is introduced a few books in, but then that can of worms had to be done away with so tha

    • I could go on an on giving examples of things and people invented out of thin air that were never even alluded to that are suddenly important (and should have been important in the previous books too) that were then forgotten about.

      Yep. Maybe he meant to say that Harry Potter is like JavaScript in the days when Microsoft would just add whatever they felt like to it in order to make the web only compatible with IE while making JS about as inconsistent and tedious as possible. Of course it does seem that much of what they did contributed positively in the long run--I don't dispute that possibility--but it does seem somewhat emblematic of something constructed piecemeal in order to move a plot along rather than something thoroughly desig

    • More generally, if you're writing fiction and you're not being lazy, you can design your world entirely before publishing any of the books. But when you design a tool, you can't possibly know how people are going to use it, so it will never be a perfect design.
    • And your point about the combination of bolted-on, deprecated and defect-prone wizardry features in the Harry Potter novels in relation to computer languages is what, again?

  • ...I expected the four to release a final declaration similar to this [york.ac.uk], explaining why they developed Python, Java, Perl and Typescript.
    • Python? Because he hated that VB didn't have proper *nix support.
      Java? Because C++ is a legitimately fucking hard language to master, and performance isn't everything.
      Perl? Because Larry Wall wanted to empower muggles to do wizardry. That and he wanted to build a language that had the power to be expressive and elegant.
      Typescript? Because JavaScript was being used in projects large enough that it was getting in its own way without declarative structure.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...