[HN Gopher] Free Oberon: Cross-platform Oberon IDE
___________________________________________________________________
 
Free Oberon: Cross-platform Oberon IDE
 
Author : AlexeyBrin
Score  : 97 points
Date   : 2023-11-12 14:28 UTC (8 hours ago)
 
web link (free.oberon.org)
w3m dump (free.oberon.org)
 
| WillAdams wrote:
| Every time Oberon comes up, I wonder how it would have done if it
| had had a "normal" graphical interface, and some aesthetically
| minded person such as Keith Ohlfs or Susan Kare to make it
| attractive by the standards of the average user/developer.
 
  | pjmlp wrote:
  | Isn't this normal enough?
  | 
  | https://www.progtools.org/article.php?name=oberon§ion=co...
  | 
  | Good enough when placed against many UNIX windows managers, or
  | the developer beloved Plan 9 and Inferno GUIs.
  | 
  | It failed because like Xerox, it stayed mostly inside ETHZ
  | walls, a few European universities and zero industry interest,
  | too much focused on building UNIX clones.
 
    | cyberax wrote:
    | > Isn't this normal enough?
    | 
    | It definitely is not normal enough. It's a whole operating
    | system, after all.
    | 
    | > It failed because like Xerox, it stayed mostly inside ETHZ
    | walls, a few European universities and zero industry
    | interest, too much focused on building UNIX clones.
    | 
    | Not really. It failed because Oberon was not a great language
    | even in the 2000-s. Right now it's not even good enough for
    | teaching purposes.
 
      | pjmlp wrote:
      | Apparently it was good enough to inspire Go authors, and
      | everyone that enjoys its influences in Go, as the ultimate
      | design in language simplicity.
 
        | cyberax wrote:
        | As an inspiration for some of the ideas? Maybe. As a
        | language in itself, Oberon was crappy even at that time.
        | 
        | From the very start, Go was utterly practical, designed
        | to be used for actual programming, and not PhD theses.
        | 
        | So compared to Oberon, Go had hash maps from the start.
        | It didn't have the SCREAMING PROCEDURE/RECORD/VAR case-
        | sensitive keywords, Go had multiple return values for
        | error handling from the start, better namespacing
        | support, variable declaration in-place, full support for
        | UTF-8 for strings, etc.
        | 
        | And of course, Go has lightweight threads and channels,
        | making it a great language for servers.
 
        | pjmlp wrote:
        | If you are stuck with a tunnel vision of the 1992's
        | version of Oberon, yeah.
        | 
        | Except that Active Oberon from 1996, sorted out most of
        | those cases.
        | 
        | Hash maps don't need to be built-ins, as proven in many
        | languages.
        | 
        | Active Objects take care of lightweight threads and
        | channels.
        | 
        | Oberon, the OS, was also good enough for Go's hero Rob
        | Pike to implement ACME and RIO on the same UX principles,
        | re-use Oberon-2 (yet another version you ignored) method
        | syntax, and Oberon's SYSTEM package as unsafe.
        | 
        | Screaming keywords, only an issue when someone doesn't
        | use an editor with automatic capitalization, only an
        | issue for Notepad-like users.
 
        | cyberax wrote:
        | We're talking about Oberon here, not about its clones.
        | And I based my reply on Oberon-2. It definitely sucked.
        | 
        | > Hash maps don't need to be built-ins, as proven in many
        | languages.
        | 
        | Except Oberon doesn't have generics.
        | 
        | From the very beginning, Go included very practical
        | "magic" generic functions: append, len, cap, delete.
        | Along with slices, they allowed Go to flourish without
        | generics.
        | 
        | Oberon only has LENGTH.
        | 
        | > re-use Oberon-2 (yet another version you ignored)
        | method syntax
        | 
        | Here's Go: "func (c Type) DoSomething(hello, world
        | string) (int, error)". Here's Oberon: "PROCEDURE (c:
        | Type) DoSomething(hello, world: STRING): INTEGER;" (error
        | handling is for wimps).
        | 
        | It is similar, but not the same. Go also has structural
        | polymorphism, which Oberon lacks.
        | 
        | > Screaming keywords, only an issue when someone doesn't
        | use an editor with automatic capitalization, only an
        | issue for Notepad-like users.
        | 
        | IT LOOKS UGLY, AND IT MATTERS A LOT, WHEN YOU MOSTLY READ
        | THE CODE.
        | 
        | So yep, I maintain that Oberon is a shitty language. It
        | might be useful as a starting point for new language
        | design, but that's it.
        | 
        | It has never been practical, and on its own it only ever
        | "succeeded" in the ETH where professors just forced
        | students to use it.
 
      | Rochus wrote:
      | > _It 's a whole operating system, after all._
      | 
      | You can use that one which easily starts on all platforms
      | without taking control of the PC:
      | https://github.com/rochus-keller/oberonsystem3
 
    | WillAdams wrote:
    | Maybe, but that's not what's being shown on the linked
    | website.
 
      | pjmlp wrote:
      | Maybe because the linked Website is not the original
      | Oberon, and derived OSes done at ETHZ.
      | 
      | The question of the parent naturally should be answered in
      | regards to what was available during the 1990's.
 
        | WillAdams wrote:
        | Working from uncertain organic memory, but yes, the other
        | screens look much better.
        | 
        | I've actually always been quite fond of the concept of
        | Oberon --- wondering if this implementation might work
        | well for a potential future pet/side project: making a
        | graphical front-end for METAPOST/METAFONT.
 
    | pmontra wrote:
    | I remember Oberon. My take is that it failed to become a
    | mainstream language because we were using C to write system
    | tools and browsers, Visual Basic and Visual C++ to write
    | Windows apps and PHP and Java to write web apps. Those filled
    | most niches.
    | 
    | Delphi and the Pascal languages were on a downward spiral of
    | popularity. C was the incumbent. PHP was easy to install and
    | solved a problem that most developers had: write a web app
    | quickly. Java and the Visual languages were backed by big
    | companies. Oberon was not. It was a curiosity at best. I
    | remember other languages from back then: Eiffel and Modula 3.
    | They resurface sometimes in HN posts.
 
  | troupo wrote:
  | The graphical interface is the least of its problems.
 
| Qem wrote:
| How does FreeOberon compare to FreePascal, in terms of standard
| library and third party libraries available? Is it a practical
| development environment, in the sense of not needing to reinvent
| every wheel to use it?
 
  | anta40 wrote:
  | https://free.oberon.org/docs/en/
  | 
  | On a glance it looks pretty limited, I see no way to access OS
  | API, no networking, etc (more or less like Turbo Pascal).
  | 
  | Perhaps sufficient as educational tool.
 
    | hnlmorg wrote:
    | Syscalls were the OS APIs back in the Turbo Pascal days. DOS
    | didn't have an SDK like we now expect. But people still
    | pulled off some pretty sophisticated stuff in Pascal
    | (personally, I wrote a DOS GUI frontend (like pre-Win 3.x) in
    | Turbo Pascal)
 
      | anta40 wrote:
      | Ah, I still remember those DOS interrupts :)
      | 
      | And of course, modern Pascal compiler like FPC provides OS
      | specific units to do that.
 
      | benj111 wrote:
      | int 0x80 was/is the x86_32 way of doing syscalls in linux.
      | 
      | im not sure if sysenter, used on 64bit systems is classed
      | as an interrupt.
      | 
      | the sdk is just a layer on top of that.
      | 
      | ive never used c on dos, it woukdnt surprise me if they
      | used a similar library to linux. theres certainly nothing
      | preventing it.
 
| BaculumMeumEst wrote:
| This project is cool as hell. I really appreciate that it has
| very straightforward instructions and takes no time to get up and
| running, it's just a git clone and an install command.
| 
| The only quirk I ran into is that when I ran graphical programs,
| I would get a full-screen window with a blank prompt; I needed to
| move that window to another workspace in order for the running
| program to be displayed. The IDE seems to get smushed into the
| bottom corner of the screen in KDE and gnome for some reason
| (which I could work around by toggling windowed mode with
| alt+enter and then dragging the window to resize), but it works
| fine in i3.
| 
| Between discovering this and finally getting around to trying the
| Factor language, I'm afraid I'm going to be very unproductive on
| my side projects for a while..
 
  | benj111 wrote:
  | >I'm afraid I'm going to be very unproductive on my side
  | projects for a while
  | 
  | I infer that your main project is discovering things that may
  | one day help you be more productive in your side projects.
  | 
  | It could be worse. Ben Eater was just trying to get his web
  | browser working like he wanted...
 
| anta40 wrote:
| Quick look at
| https://github.com/kekcleader/FreeOberon/blob/main/src/make....:
| 
| It uses ofront (Oberon-2 to C translator), and let GCC do the
| heavylifting. Let's check if this thing can be easily built on
| macOS...
 
| andai wrote:
| See also: Oberon+: https://news.ycombinator.com/item?id=35209102
| 
| Code Examples: https://oberon-lang.github.io/
| 
| Context: https://github.com/rochus-keller/Oberon
 
| zozbot234 wrote:
| The TUI IDE is kinda interesting, looks a lot like QuickBasic,
| Turbo C and other old-style DOS apps. But otherwise, it would be
| a lot more sensible these days to just code an Oberon-specific
| language server, that you could use with any IDE.
 
  | bitwize wrote:
  | Oberon is much more a language/library/IDE/operating system,
  | like a Pascal-flavored Lisp machine. This is a bit like saying
  | "Emacs Lisp is great but what I really want is a language
  | server for it so I can write it in VS Code."
 
    | zozbot234 wrote:
    | This project just uses a C transpiler and creates plain
    | binaries, though. It's not running under any sort of bespoke
    | environment.
 
| minroot wrote:
| Too much at 4:20 AM
 
___________________________________________________________________
(page generated 2023-11-12 23:00 UTC)