Hacker News new | past | comments | ask | show | jobs | submit login
Oberon - The Oberlooked Jewel (uci.edu)
54 points by pmarin on April 22, 2012 | hide | past | favorite | 57 comments



Warning, direct link to PDF. And for some reason it is linked through Google. Direct link is http://www.ics.uci.edu/~franz/Site/pubs-pdf/BC03.pdf


The original link seems to be a search result, which makes me wonder could this be used as some sort of SEO technique.

I'm not implying that this was OP's intention, just that from what basic understanding of SEO I have, Google takes into consideration click through rates of a link, higher click throughs resulting in more favorable rankings.

So, theoretically, if you could get a lot of people to visit an article using Google's search link, instead of a direct link, would that somehow convince Google to rank it more favorably?

Again, not something I'm accusing the OP of, just generally wondering.


You are right, It was a search result. I had problems with the link I found in the Wikipedia ( http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90....) but not sure if simply I was filling the wrong entry box in the submit page.


I imagine google checks that search redirect links actually come from a search result (SR) page, for example by checking the referer.

Should this post be flagged because it is a duplicate bypassing the dup detection by using a google SR link? Perhaps.


Thanks. It is strange, the only think I did was to use "Copy link as..." in the contextual menu.


Yeah, Google has started adding redirect cruft to search results in the past year or so, which is pretty annoying when trying to share links.


Unless my mind is playing tricks on me, Google search results have been that way a lot longer than a year.


You're right, looks like it's been at least since 2009. I recall they used to not have any redirects, and then they started inserting them randomly, for only maybe 5% of search results. Then at some point they got phased in for all results. Thought that phase-in was more recent, but seems not.


Not really cruft, but a very simple way to measure how relevant was that result for the search you did.


Simple and valuable to Google, perhaps, but a major sign that they're no longer doing what's best for users. It breaks the web in at least two ways: makes it slower and hides the true links. I hate that they do this. Nothing has been more destructive of the warm feeling I used to have toward Google. I still use them out of habit but eventually irritation and the rise of some credible competitor will coincide and cause me to switch.


> a major sign that they're no longer doing what's best for users.

How exactly improving the relevance of the returned results is not the best for their users?

> makes it slower

257 ms here. Not that much compared to the 2 seconds the actual server took to start returning the data.

> hides the true links

The proper URL is the green line under the title. Here it says "www.ics.uci.edu/~franz/Site/pubs-pdf/BC03.pdf".


> The proper URL is the green line under the title.

If the URL is short enough that works fine, but if it's longer you can't copy the URL from there, because Google will insert an ellipsis in the middle of the long URL. For example, an article I was searching for just now shows up on the green line as ssdi.di.fct.unl.pt/masters/mcl/content/.../Robinson-CL2000.pdf. Can't copy that, and can't get the original URL from the right-click either!


Isn't this occasional problem worth having in return for better search results? How often you copy the link URL instead of checking what's on the other side?


It'd be nice to have a [PDF] tag in the link.


That's why I use the "Google/Yandex Search link Fix" Firefox extension.


Having grown up on Borland Pascal, I have a sentiment for Pascal and its derivatives. I enjoyed programming in BP, and I'm not too happy that Pascal derivatives lost their popularity to C derivatives. (I was reading a bit about Modula 3 and got quite intrigued by its module system.)

But, users are few, fragmentation is high (Borland Pascal/Delphi, Object Pascal, Component Pascal; Modula-2 and Modula-3; Oberon, Oberon-2, Oberon-07, Active Oberon, Zonnon). How the heck are you supposed to choose when all those languages taken together have probaby about user base as "large" as that of common lisp? Plus, Oberon webpages at ETH look like abandoned.


Delphi is very popular outside of the U.S: http://www.google.com/trends/?q=delphi,lisp

(I'll leave it to others to correct my Google Trends query to the proper search terms for Lisp variants -- or it could be that Lisp programmers tend not to Google their own language much :) )


In two decades as a professional programmer, I have only ever heard glowing remarks from Delphi developers about their environment. Certainly Eclipse and even Smalltalk can't match that.


Delphi 6 and 7 were the best IDE's of their time, way better than Visual Studio 6. The language was great for the time, there was a vibrant community around it, you could find a component for everything. Borland also shipped the sources for their main library, VCL, which helped a lot when debugging. It was the best way to do Rapid Application Development.

Unfortunately, the company lost it's focus, they've tried to move to .net and the next few versions of the IDE were really buggy. The language also lagged behind C#/Java, they didn't add full Unicode support until 2009, for example.


They're no longer lagging. The most recent version has a new ui framework that is hardware accelerated and cross-platform (a pretty unique combination). You can even make iOS apps with it.


I know, it's impressive. If I'll ever have to do a non-dotnet app, Delphi will be the first thing on my list.


I wonder how good their cross-platform fu is if they don't have a mac version of the IDE.


As far as I know they are using FreePascal as well.


Not to mention the super fast compile times when compared with "#include" languages.


So is Clipper, but I don't consider it a good thing.


Clipper the dBase III extension language? People still use that?

Dang - should have held onto those manuals.


Just look into Stack Overflow.

http://stackoverflow.com/tags/clipper/topusers

It's not as popular as VB6 ;-)

http://stackoverflow.com/tags/vb6/topusers


I'm happy that Pascal lost:

- Everything new that Pascal had (record file io, for example) were suboptimal. Everything useful in Pascal came from C (including loop controls).

- Useful things from C are bolted on Pascal in gross, inconsistent and ugly way. E.g. break; loop construct is a procedure! Lol, what?


Pascal heritage is Algol not C.

Since Pascal lost, we gained buffer overflows exploits everywhere, thanks to a language that does not provide proper safer constructs coupled with bad developers everywhere.


The problem is, you can't do any real work in Pascal without resorting to the same unsafe constructs. Delphi is a kind of useful Pascal and it totally does have those.


Yes you can.

Do you really need pointer arithmetic, null terminated strings and array downgrade to pointers for real work?

Because every other language in the planet is able to deliver real work without them. Even the ones that existed before C.


Okay, then where is the work done in Pascal? Research projects excluded.


Mac OS was created in Pascal originally, http://shop.oreilly.com/product/9780596007195.do

Skype was originally created in Delphi, before being ported to Qt.

http://www.prweb.com/releases/2011/5/prweb8476410.htm

Pixel32 is done with FreePascal http://www.kanzelsberger.com/ http://en.wikipedia.org/wiki/Pixel_Studio_Pro

Atmel AVR-Microcontrollers programmed in Pascal http://www.e-lab.de/index_en.html http://www.mikroe.com/eng/categories/view/2/compilers/

Should I keep posting examples?

Or for you is Pascal only the very first release of the standard, which was only planned for education purposes?


Was Mac OS so secure and crash-free because it was written in Pascal? I've heard otherwise.

Most of other examples are about a thin layer of Pascal on top of (unsafe and non kosher) C.


I said created, not maintained, if you read the book you will see later generations were later rewritten in C.

Of course you have to write on top of C, because that is what, sadly most operating systems are still written today.

But even that is slowly changing, when we look at the way operating system development is evolving, with safe layers on mini kernels, like Google is doing with Android or Microsoft with WP/WindowsRT/Singularity.

Anyway, I am stopping here, as won't convince you of anything and you won't convince me.


> loop construct is a procedure! Lol, what?

Common Lisp's loop is a macro, Smalltalk's are method calls (with blocks), work fine.

That's not the case in Pascal though. Neither `for` nor `while` are procedures, as in C they're special forms of the language.


Macro is okay. Procedure is not okay. Break is a procedure.


> Macro is okay. Procedure is not okay. Break is a procedure.

Why do you believe this to matter? Smalltalk's signaling and exception handling (both `catch` and `finally` equivalent) uses regular messages and blocks (with hooks into the interpreter obviously). What value do you see in making special syntax things which need not be so, ease of "optimizations" (such as compiling a block to a jump)?


Why is it not okay? Any lisper will tell you using a function is always preferable to using a macro, if at all possible.


C is a strict and beautiful. Pascal is "Here you have your ugly break; because you too weak to live without it".


Yes, I have a collection of works of art entitled "buffer exploit", placed next to the "dangling pointer" exhibition hall.

It is sooo beautiful.


Don't you understand the sheer beauty of the undefined behavior? It is not the beauty of a great painting, it's the beauty of the winter mountain: shining, tantalizing, with the stability of a marble on a needle and ready to take your life at the lightest sneeze.


If you think C is strict, then you've never looked at the ANSI C standard.


I've looked at Delphi, thank you.


Pascal has had labeled goto from its conception. Break is just an extension / syntactic convenience. Even in C and C++ i still use goto when I have to break out of multilevel loops.


Try Ada? It's a Pascal family language, with support in GCC and a lot of rather nifty features.


The gcc Ada support is actively developed and maintained by AdaCore. You can even get paid support if that's your thing.


i love Ada and i think it is the real jewel.


Me too.

If they had had better industry support, maybe we wouldn't be suffering so many buffer exploits in our software.


Quite a nice system. I even wrote a lexer/parser for it back on my university days.

It is the living proof that it is possible to use a safe systems programming language for operating system development.

The Native Oberon system was quite nice to use in how the UI concepts would map to Oberon modules, as such it was quite extensible.

Sadly, it never got picked up by the industry.

The way methods are associated with types in Go has been influenced by Oberon language family (see Component Pascal).



I remember playing around with Several different versions of Oberon on my Mac back in the day. It was intriguing but not really useful except for working on Oberon (fine for a comp sci course). The one lasting impact it had on me was that its system font was a really nice sans serif face called Syntax, which I continue to use for many purposes today.


For those who waited for "the language" by Nikolaus Wirth those may have a look into Zonnon http://www.zonnon.ethz.ch/archive/The_Concepts_of_Zonnon_6_y... [http://news.ycombinator.com/item?id=2847075]

I'm very thankful for that contribution! Yeah it is overlooked, that system was definitely superior to what we have today. I hope one day new machinery can be reverse-engineered by the computer itself (evolutionary algorithms), instead of reverse-engineering closed-source drivers by hand.


Oberon was the language used in my high-school courses (This was only 7 years ago). I had a hard time understanding the choice at the time and no one was able to explain it to me, but now it seems it was the logical decision when you try to move away from Pascal as a learning language.

The resources at the time available on the web certainly didn't reinforce my confidence in the choice and so I went to the C derivatives and never looked back. If there would have been better resources and better 'publicity' my choice might have been different.


Did anyone else find the story about switching from a tree structure to a list kind of weird? On the one hand, that's a pretty trivial sort of optimization, and hardly seems worth making a fuss about.

But on the other hand, isn't he assuming that any future users of his compiler will have source code that looks like his? Sounds like all it would take is one person using an automatic code generator to generate Oberon code that's not smart about reusing variable names to bring the compiler to its knees...


http://www.ics.uci.edu/~franz/ - "Franz received a Dr. sc. techn. degree in Computer Science (advisor: Niklaus Wirth) and a Dipl. Informatik-Ing. ETH degree, both from the Swiss Federal Institute of Technology, ETH Zurich."

So Michael Franz can hardly be considered impartial to this matter.


I'd love to have an FPGA-based Lilith to go along my also wanted Alto and Symbolics machines.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: