7 ms·
Free Oberon: Cross-platform Oberon IDE
- WillAdams 3y agoEvery 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 3y agoIsn't this normal enough? https://www.progtools.org/article.php?name=oberon§ion=compilers&type=tutorial 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 3y ago> 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 3y agoApparently it was good enough to inspire Go authors, and everyone that enjoys its influences in Go, as the ultimate design in language simplicity.
- cyberax 3y agoAs 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 3y agoIf 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 3y agoWe'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 3y ago> 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 https://github.com/rochus-keller/oberonsystem3
- kekc_leader 3y agoOberon is perfect for teaching purposes. It is understandable from the first glance. On the first lesson, even 9-year-olds start writing graphical programs! I've been testing Free Oberon as an edutcational tool since 2016. Kids in a sport summer camp use it.
- WillAdams 3y agoMaybe, but that's not what's being shown on the linked website.
- pjmlp 3y agoMaybe 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 3y agoWorking 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.
- kekc_leader 3y agoWhy not? Use Free Oberon, I will help.
- pmontra 3y agoI 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 3y agoThe graphical interface is the least of its problems.
- WojtekSkulski 3y agoCheck out Component Pascal Collection. It is as normal as it gets under Windows. Tell you what: I use their built-in wordprocessor to write grant applications. I prefer it over MS Word or even Libre Office. Download free BlackBox Component Builder from there, as well as amazing scientific software written in that language. Includes graphics, math, algebra, simulations, etc. Some of that stuff (Chill by Robert Campbell) was developed at BAE Systems for flying jet planes. Not just cool. It is heavy duty production stuff. And free. http://www.zinnamturm.eu/downloads.htm http://www.zinnamturm.eu/downloads.htm
- kekc_leader 3y agoBlackBox is a great program, but it is a self-contained system, that isn't well-suited for classical programming (i.e. making executables: console applications, grpahical games, integrating with C-code). If you need an Oberon compiler in classical sence, use Free Oberon.
- Qem 3y agoHow 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 3y agohttps://free.oberon.org/docs/en/ 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 3y agoSyscalls 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 3y agoAh, I still remember those DOS interrupts :) And of course, modern Pascal compiler like FPC provides OS specific units to do that.
- benj111 3y agoint 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.
- mikewarot 3y agoMS-DOS used Int 21h with the function number in in the AH register.
- fostware 3y ago
- BaculumMeumEst 3y agoThis 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 3y ago>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...
- kekc_leader 3y agoThank you very much. I love Oberon for its simplicity and structuredness, and I find it best-suited for all programming tasks. I even use it in web-programming. So when I found out about Oberon, I noticed that there is nothing that I can easily install to start programming in it. I tried XDS, OO2C, VOC, BlackBox, and everything was not that I wanted. It was nothing as simple as, for example, Free Pascal, where you just download and use it. So I made Free Oberon. I switched several times from SDL 2 to Allegro 5 and 4 and back (with a lot of recoding on each step), also switched compilers from VOC to BlackBox and finally Ofront+. I'm planning to substitute it with my own Oberon compiler at some point, so I read everything about compiler construction and do Oberon experiments a lot. Could you please describe the issue with the full-screen a bit more? You can create an "issue" in the FreeOberon Github repo. I think it would be possible to fix it. Are you using two monitors?
- BaculumMeumEst 3y ago
- anta40 3y agoQuick look at https://github.com/kekcleader/FreeOberon/blob/main/src/make.sh 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...
- kekc_leader 3y agoPlease let me also know about the results. I don't have access to MacOS, but would love to make Free Oberon available there too. My students with MacOS are learning using Free Oberon in an emulator.
- kekc_leader 3y agoIt uses Ofront+ -- a descendant of Ofront. So that's another transpiler. Ofront+ is much more developed, for example it allows compiling in Oberon-07 standard with the addition POINTER TO ARRAY and 2-byte CHARs. That is what Free Oberon uses by default. In future versions of Free Oberon, there will be a selection of Oberon standards (Ofront+ provides Oberon 1990, Oberon-2, Oberon-07, Component Pascal, and the so called Oberon-3).
- andai 3y agoSee also: Oberon+: https://news.ycombinator.com/item?id=35209102 https://news.ycombinator.com/item?id=35209102 Code Examples: https://oberon-lang.github.io/ https://oberon-lang.github.io/ Context: https://github.com/rochus-keller/Oberon https://github.com/rochus-keller/Oberon
- deleted 3y ago[deleted]
- zozbot234 3y agoThe 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 3y agoOberon 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 3y agoThis project just uses a C transpiler and creates plain binaries, though. It's not running under any sort of bespoke environment.
- kekc_leader 3y agoYes, I intentionally wanted to make it create real binaries. I had a version running on BlackBox, which produced machine code too, but only 32-bit code, and there were limitations on using code from other programming languages (BlackBox only allows so- or dll-files to be plugged in). I made it so people can create stand-alone executable files, like, in example, Telegram.
- deleted 3y ago[deleted]
- wenc 3y agoI love that TUI. Ncurses doesn’t even come close. I used to spend hours in Paradox for DOS, Turbo C etc. It felt so comfortable compared to Ncurses TUIs.
- kekc_leader 3y agoThe TUI for Free Oberon is built from scratch. The programming module is called "OberonVision" (like TurboVision in DOS).
- minroot 3y agoToo much at 4:20 AM
- shrubble 3y agoThe great thing about Oberon now under Linux/Windows/Mac is that you can easily create CLI and related filter programs, like something that can be piped into perl or awk, or can receive output from a shell pipeline. This makes for a very gentle slope into using it more.
- anta40 3y agoWhich Oberon compiler do you use?
- augustk 3y agoI can recommend OBNC: https://miasap.se/obnc/ https://miasap.se/obnc/ With this compiler you can also write interfaces to existing C libraries without too much pain. This is achieved without any (non-standard) additions to the language.
- WojtekSkulski 3y agoI recommend BlackBox Component Builder and the Component Pascal which should have been named Oberon-3, but stepped back to Pascal for marketing. Which failed. But the language and environment are superior. And free. Check them out. This website is providing amazing scientific software. Includes graphics, math, algebra, simulations, etc. Some of that stuff (Chill by Robert Campbell) was developed at BAE Systems for flying jet planes. It should tell you something. http://www.zinnamturm.eu/downloads.htm http://www.zinnamturm.eu/downloads.htm
- augustk 3y agoThe latest revision of Oberon has several implementations. Also, OBNC can be used on Windows, macOS, Linux and other POSIX compliant operating systems. Component Pascal has a single implementation which is Windows only. Oberon was created by a master of programming language design; the feature set is minimal but complete. Component Pascal adds a number of features which Niklaus Wirth intentionally left out in Oberon.
- kekc_leader 3y agoHi everyone. I'm the Free Oberon creator :) Will be happy to answer your questions.