5

I was reading in the side bar of the Java language wiki page and it says it was influenced by Pascal and Delphi. this isn't the fact anymore, there are no references to Delphi on the entire referenced wiki page as of this edit, probably should remove all references to Delph from this question as well

At first glance Java appears to just be C++ with a garbage collector, and no pointers. Delphi and Java both came out the same year.

I am curious if someone who knows Java and Pascal / Delphi really well could look at Java and say "Feature X in Java is influenced by feature Y in Pascal (or Delphi)."

Additionally was the influence in later versions of Java (so the feature from Pascal or Delphi didn't show up until Java version Z), or was it actually in the seeds of the Java language? Delphi and Java both came out the same year, so Delphi's influence in the genesis of Java seems less likely.

Alternatively it may be that Delphi or Pascal influenced the Java Platform in some other way, and not the language specifically.

[This was rewritten to be clearer. That may have changed the scope of the question to the point the existing comments and answers don't fit. My intention was to clarify and not change.]

Jim McKeeth
  • 2,126
  • 15
  • 30
  • 21
    "The problem with quotes found on the internet is you have no way of confirming their authenticity." - Abraham Lincoln. – Jesse C. Slicer Jul 28 '11 at 18:55
  • Thus the reason I am asking on here. Seemed a little odd to me. – Jim McKeeth Jul 28 '11 at 18:57
  • 4
    Seriously, though. Having seen the birth of Java, it really seemed to be the answer to the operator-soup C++ was becoming more than anything. A clean C++, if you will. C#, however, being created by Anders (who also created Turbo Pascal and Delphi), seems to take its roots almost squarely from Java and Delphi. – Jesse C. Slicer Jul 28 '11 at 18:57
  • @Jesse: Exactly. It's particularly evident when you look at the really early versions: C# and the .NET framework look a whole lot like "Delphi rewritten to look like Java." – Mason Wheeler Jul 28 '11 at 18:59
  • 2
    Also, I just read the white paper linked to on that wiki page (http://java.sun.com/docs/white/delegates.html) and it seems that they *considered* some Object Pascal design for Java but ultimately rejected it. – Jesse C. Slicer Jul 28 '11 at 19:02
  • 2
    I think it was the JavaBean specification that most of the influence was seen in. – mezmo Jul 28 '11 at 19:43
  • Delphi contains the same Object Pascal from Turbo Pascal (no doubt with further tweaks), so although a direct Delphi influence on Java seems implausible based on dates, it isn't necessarily a misleading claim. Surprisingly though, Java had properties all the way from version 1.0 - which I thought were a Delphi innovation, originally to suit the RAD GUI stuff. I wouldn't be surprised if there was some communication between developers, though, before either were formally released. –  Jul 29 '11 at 16:16
  • Interesting, my impression was that Delphi *was* Pascal, just with objects and a couple of the holes filled in (e.g., proper strings, none of this `packed array[1..n] of char` nonsense). – TMN Jul 29 '11 at 17:25
  • 2
    @TMN - Delphi was a non-standard variant of Pascal packaged with RAD tools, libraries etc. Turbo Pascal already wasn't standard Pascal at least as far back as version 4.0 - before then, it was probably already extended, but mostly used to compile standard Pascal. With 4 (or maybe 3), Turbo Pascal became the de-facto Pascal standard, making the official standard increasingly irrelevant. C++-like classes first appeared in version 5.5. So Delphi was kinda "just" Turbo Pascal with lots of extra tools and libraries, but Turbo Pascal hadn't been "just" Pascal for quite a while. –  Jul 30 '11 at 02:02
  • 2
    Borland was heavily involved in the creation of the JavaBean spec which loosely modeled the Delphi component model. – Craig Jul 30 '11 at 03:28
  • 1
    Java deliberately was designed with C syntax even if the object system is vastly different. This was to make it accessible to C++ programmers. –  Jul 30 '11 at 08:44
  • @Steve314 the object model in Delphi is very different from the object model that was introduced in Turbo Pascal 5.5 (the `class` versus `object` keywoad is an indicator, not mere tweaks, but totally different). As of Delphi 2 or 3, there is also interface inheritance. Delphi.NET and 2006 introduced class and record helpers in the .NET and Win32 world, and as of Delphi 2009 there is Generics. – Jeroen Wiert Pluimers Aug 15 '11 at 06:40
  • @JimMcKeeth Delphi == Visual Studio more than Java as a language specification and virtual machine. Delphi was a RAD package wrapper around Pascal. Java has always been something completely different conceptually and functionally. I also can't find a single reference to Delphi on the wiki page referenced in the question. I think the assertions in this *question* are fatally flawed because of inaccuracies like this. –  Jul 15 '12 at 08:14

3 Answers3

5

One definitive influence on java was the idea and use of p-Code (pseudo-code) in the Pascal package from UCSD. It was popular in the early days of the Apple-II computer.

This idea of p-Code is very similar to that of Java.

el mugroso
  • 66
  • 1
  • 1
4

Yes, according to http://www.levenez.com/lang/ (and other sites I'm too lazy to list) Java has a distant relationship with Pascal through the chain: Pascal -> Mesa -> Cedar -> Oak/Java. This same site shows a more recent influence into Java from C#, which has its own lineage going back to Pascal -> Turbo Pascal -> Delphi through its architect Anders Hejlsberg.

Just do a google search for "lineage of programming languages" and browse til you can't stand looking at huge linage charts any more. ;)

John Gaines Jr.
  • 1,116
  • 6
  • 8
  • 1
    that's pushing it quite a bit, I rather see some specific evidence of a feature that was implemented in Java that came from Pascal, that's like saying that you are influenced by your great great great grand father, sure it can happen, but in most cases, you don't even know his name – BlackTigerX Jul 29 '11 at 16:15
  • 1
    @BlackTigerX - if your great great great great grandfather happened to be Dickens, though... Pascal was a very widely used language, whereas Mesa and Cedar were much less will known. It's implausible that none of the Java developers had ever used Pascal, and barely more plausible that none of the Java developers had ever used Turbo Pascal. Lineage charts often simplify, not including the explicit arrows for grandfather, great grandfather, etc influences even when they occur directly as well as indirectly. That said, Turbo Pascal 5.5 (first object Pascal?) was heavily C++-influenced anyway. –  Jul 29 '11 at 16:25
  • I had seen that chart and others, but I am curious if someone who knows Java and Pascal / Delphi could look at Java and say "See this feature here, it is influenced by Pascal (or Delphi)." I'll update the question. – Jim McKeeth Jul 30 '11 at 02:05
  • @Steve314 Turbo Pascal 5.5 was heavily influenced by Object Pascal from Apple. QuickPascal 1.0 stems from the same influence. Both Borland (with Turbo Pascal 5.5) and Microsoft (with QuickPascal 1.0) were in 1989 rushing as to get their product to the market first. They both shipped without a decent OO UI framework. – Jeroen Wiert Pluimers Aug 15 '11 at 07:05
2

Contrary to popular folklore, Java was strongly influenced by Objective-C and not C++. This is a usenet post by one of the people working on the Oak project that became Java. He explains that Oak had a number of people who'd come to Sun from NeXT, and that key early decisions in Java's design like single inheritance, multiple interfaces and supporting both primitives and object-type number vales came from ObjC.

Notice that the conversation also describes just how far removed the principles of Modula-3 - and by association Pascal - are from Java.