[HN Gopher] Tex-Oberon: Make Project Oberon Pretty Again
___________________________________________________________________
Tex-Oberon: Make Project Oberon Pretty Again
Author : todsacerdoti
Score : 115 points
Date : 2024-01-06 15:25 UTC (7 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| cstross wrote:
| I can't find the bibliographic details for the 2013 edition, but
| the 1992 one was published by Addison-Wesley, so it's quite
| possible that anyone participating in this project to "liberate"
| the text will get a cease-and-desist from Pearson Plc's legal
| department/anti-piracy people.
|
| Caveat: the 2013 edition doesn't seem to be available via Amazon
| so may well be formally out of print. In which case, Wirth's
| heirs can issue a rights reversion letter to Addison-Wesley and
| claw the rights back, then relicense the text libre. Or they may
| already have other plans for re-issuing the book.
|
| Either way, it'd be polite to ask first before "liberating".
| dchest wrote:
| The book and software is under the MIT-like license
| https://people.inf.ethz.ch/wirth/ProjectOberon/license.txt
| cstross wrote:
| That's a good starting place, then.
|
| (It's still polite to ask/let the heirs know what you're
| doing.)
| kragen wrote:
| wirth has published his project under an open-source
| license, guaranteeing everyone everywhere the freedom to
| study, copy, modify, and redistribute it forever
|
| you're suggesting offering his heirs the opportunity to
| revoke that license
|
| how can you possibly think this is a good idea? if it
| became a widespread practice, it would result in a million
| lawsuits like the sco lawsuit, utterly destroying free
| software. is that what you want?
| lifeisstillgood wrote:
| A fantastic idea, and also the philosophy behind Oberon is
| something I think we shall need more of - as the operating system
| for a computer is now conceptually the operating system for a
| network, a cluster of computers, for an organisation, a
| government, having one company's "operating system" not only be
| defined in software, but enable that software to fit in one head,
| that seems important in ways that otherwise make us throw up our
| hands and say "it's all rigged" or "they are all the same" or
| "who knows, let's just keep going"
| tcbawo wrote:
| Can anyone recommend this book as a first resource for a young
| teenager to teach themselves about computer science and coding
| (with some guidance and assistance from myself)? He has a strong
| interest in making games, but has stalled out with his attempts
| at programming so far (a handful of books and YouTube videos). I
| think learning from first principles would be most effective, but
| our earlier attempt with Nand2tetris might have been a little too
| low level to hold his interest.
| 48864w6ui wrote:
| No (see the earlier discussion for this book's prereqs)
| tcbawo wrote:
| There have been many posts and much discussion on this book
| since Wirth's passing. Looking around, I found some
| discussion that describes this book more as a description of
| a complete system than an introduction that describes how it
| gets there. I don't think this necessarily disqualifies it as
| a beginner's book. Having a reference description of a
| complete system that one can fit in one's head might be a
| _great_ resource for a beginning programmer.
|
| If anyone has read/used this book before, I would love to
| hear their opinion about where it best fits in their journey.
| airstrike wrote:
| I would pick something more high-level like a Python project,
| or maybe since he likes games, a Godot project using GDScript
|
| These would have smaller scopes and likely feel "rewarding"
| much more quickly
| giovannibonetti wrote:
| Perhaps a book like Realm of Racket or How to Design Programs
| might interest him. Both teach Lisp-style programming with the
| Dr Racket IDE, although the former might be more appealing to
| teenagers due to the games developed and the narrative in each
| chapter.
| xhevahir wrote:
| I don't recommend these. Racket's libraries for making games
| are slim compared to, say, Pygame, or Love2D.
| kragen wrote:
| or godot or obviously js in the browser
| derefr wrote:
| I've read a lot of introductory texts to programming, as I have
| taught programming in a classroom setting to high-school
| students, and am always on the lookout for better ways to teach
| it.
|
| (Also, I know quite a few programming languages, both low-level
| and high-level. I'm a "right tool for the job" sort of person,
| using different languages on different projects. So I'm not
| recommending this text out of bias for a certain language.)
|
| My own favorite introductory text for programming, at a high-
| school level, is https://pine.fm/LearnToProgram, which teaches
| the Ruby language.
|
| (There's a book version of it linked in the site's sidebar,
| which might be nice to give as a gift to a prospective student;
| but the original free online version linked below it --
| https://pine.fm/LearnToProgram/chap_00.html and onward -- is
| already very good, and is what I usually end up pointing people
| toward.)
|
| LtP is a very results-oriented tutorial: it just shows you
| "what" you can do, and gets you going on doing things and
| experimenting, rather than trying to teach you a lot about
| "why" things work the way they do. It shows you what works and
| what doesn't, and uses that to teach-by-example that there are
| some underlying fundamental principles (e.g. + is addition for
| Integers and concatenation for Strings, but you can't + a
| String and an Integer together, because there's no clear
| meaning when the two things you're +ing don't have the same
| "type.") It briefly discusses the principle -- just enough to
| know it exists -- and then moves on.
|
| I think a results-oriented approach is important at a high-
| school level, as a learner is at this point still deciding
| whether they really want to "get into" programming, or if it's
| "not for them." And I've found that the thing that dissuades
| teenagers from thinking programming is "for them", usually _isn
| 't_ the struggle of debugging or solving puzzles; rather, it's
| interminable lessons on theory, that they have no practical
| foundation yet to motivate a _need_ for understanding of. They
| need to see results to understand the joys of programming --
| and to experiment to understand the struggles -- but they _don
| 't_ need to be forced through the _mind-numbing
| incomprehension_ of a CS / Discrete Maths lecture. That can
| wait until they know enough to ask questions like "why does
| this program [that has a three-deep hot loop searching a big
| array by value] run for hours without finishing?" Sell the
| problem before the solution!
|
| This results-oriented approach is helped by the language choice
| of Ruby:
|
| * Ruby is a language that has very little boilerplate syntax
| you must type to make a program work. In a language like Java
| with much boilerplate, even if a tutorial says "ignore it for
| now", students itch to know why it's needed. Ruby code just
| doesn't have anything to cause that itch. Ruby "gets out of the
| way."
|
| * Ruby has _uniform_ syntax. Most other low-boilerplate
| languages, a.k.a. scripting languages -- I 'm specifically
| thinking of Perl and Python here -- have legacy syntax warts
| that break the learning trance. Ruby's syntax is very
| predictable, with no real "irregular verbs" to remember. Other
| languages make students remember -- at first with no rule the
| learner could yet understand -- that it's sometimes `len(x)`,
| but other times it's `x.Len()`. In Ruby, it's always `x.foo`.
| Even on an integer literal. Even on `nil`!)
|
| These two features of Ruby -- no boilerplate, and predictable
| syntax -- also translate to a lot less time being spent helping
| students debug _their syntax_ instead of _their program_. (New
| programmers have a lot of trouble with syntax!)
|
| For a college student who likes math, I might recommend a
| different text, or even a different language. (I think SICP is
| pretty great, actually.) But for a young teenager, I think LtP
| and Ruby are a great place to start.
| jahewson wrote:
| I'm a first principles thinker and prefer to learn from books,
| but it must be said that games are really exciting and YouTube
| videos very engaging. Books... not so much. Indeed, as a
| teenager in the 90's I first learnt to code from videos ("Learn
| Visual Basic Now" from Microsoft). First principles aren't much
| fun when the path to applying them in the manner you want is
| measured in years - this is where having an engaging and
| relatable teacher makes all the difference (out of scope here).
|
| I've found that it's much easier to jump into coding in an
| established environment where there's a large ecosystem that's
| well-groomed by a large corporate entity, so think Unity/C# or
| Swift Playgrounds. There's less jargon, fewer ways to do the
| same thing, and much, much better and varied learning
| resources.
|
| My younger brother got into coding as a teenager, via an
| interest in gaming, nudged along by me. There were several
| false starts as the kind of games he was interested in, namely
| 3D MMORPGs built by thousands of engineers and artists, had no
| beginner-level on-ramp to learning. Eventually he picked up
| enough coding skills that he developed an interest in coding in
| general and went on to study it in college. 20 years later I
| still don't think he's written a game though :) but he does
| write code that schedules the UKs trains!
| e12e wrote:
| There's always smalltalk for a different approach I suppose?
|
| https://wiki.squeak.org/squeak/692
|
| I'd guess starting with something like Godot game engine and
| then going back to the theory later would be more successful
| (but everyone is different...).
|
| See also the recent launch hn:
|
| Launch HN: Rosebud (YC S19) - Turn game descriptions into
| browser games https://news.ycombinator.com/item?id=38868185
| ajkjk wrote:
| It is still a bit irritating to see the phrasing "make X Y again"
| in any context ever. Would really rather not have... any of...
| the associations that it gives.
| Nadya wrote:
| Giving people the power to change your way of speech or way of
| thinking is how you let them have power and control over you.
| It gives them strength when they should be seen as weak. It
| empowers them.
|
| If you detest what a certain phrase might stand for - work
| towards changing what it stands for. Don't give it away freely
| and without a fight. You do a disservice to yourself and
| everyone else.
| ajkjk wrote:
| Weird reply. I can't tell, are you agreeing or disagreeing or
| something else?
| zvmaz wrote:
| I haven't noticed, but now that I've read your comment, I can
| understand your irritation. Just shrug it off if you can.
| 082349872349872 wrote:
| That was slightly irritating; what is more irritating
| (notwithstanding the obvious best intentions of the project!)
| is the seemingly widespread notion that typography has much to
| do with Wirth's work.
|
| It would be as if the people in Plato's cave, instead of
| contrasting the outside and inside, were to obsess over which
| section of cave wall had the most pleasing texture over which
| the shadows might play...
| kragen wrote:
| experienced buddhist meditators famously sometimes meditate
| despite chilblains, or incense burning on their scalps, or
| being aflame with gasoline, or starving themselves to death
| over a period of months
|
| but if you try to begin your practice of buddhist meditation
| with incense burning on your scalp, you probably will not get
| very far; you will probably quit. instead, beginning
| meditation focuses on finding the pleasure in relaxing in a
| comfortable position, even though that is clearly not what
| motivates more experienced meditators
|
| (and of course you're aware old don and old ed (rip) spent a
| lot of effort on typography, though they sometimes understood
| wirth's work better than he did himself)
| trollerator23 wrote:
| Seriously. It's very irritating.
| tux1968 wrote:
| Direct link to the current release of pdf, generated from his
| work so far:
|
| https://github.com/guidoism/tex-oberon/releases/download/v0....
| chrismorgan wrote:
| (2022)
| jagged-chisel wrote:
| Can someone detail the differences from the original? Looks
| subtle to me. How are we defining "pretty?"
| tux1968 wrote:
| Being "pretty" seems to be an editorial comment from the person
| who posted this link. At least, I don't see that claim being
| prominent anywhere in the Github repo. The goals of the project
| are rather to extricate the text from pdf format, to make it
| more available and adaptable.
| Sardtok wrote:
| The title of the project on Github is Make Project Oberon
| Pretty Again, it's not something added to the HN post.
|
| "The last edition -- from 2013 -- could use some tender
| loving care. It should look beautiful." - the paragraph that
| introduces the goals of the project.
| codeflo wrote:
| I'm not sure if you've found a better version of the original,
| but this is the document I found:
| https://people.inf.ethz.ch/wirth/ProjectOberon/PO.System.pdf
|
| It's typeset in Arial. In freaking Microsoft Word.
| codeflo wrote:
| Some people rave about Oberon, and I think there are brilliant
| technical ideas in the system, and this is entirely subjective,
| but reading the language gives me a headache. At least Pascal
| allowed lower-case keywords.
|
| Does anyone know why Wirth never modernized his style? I wonder
| if there's a place for something that's equally minimalist, but
| more in line with current aesthetic sensibilities.
| michaelsbradley wrote:
| Nim?
|
| https://forum.nim-lang.org/t/10843#72291
| thisislife2 wrote:
| > Does anyone know why Wirth never modernized his style?
|
| Readability. It's easier to read the source code with uppercase
| keywords. (I think Wirth once said that code is written once
| but read many times). See this source code -
| https://raw.githubusercontent.com/rochus-keller/OberonSystem...
| - to get an idea of this (the uppercase keywords allow you to
| easily scan the blocks of code). Ofcourse, one can claim that
| the same can be achieved better today with colour-coded
| keywords.
|
| If it really bothers you, I think the Oberon+ IDE -
| https://github.com/rochus-keller/Oberon - gives you an option
| to disable this and use lowercase keywords.
| codeflo wrote:
| > It's easier to read the source code with uppercase
| keywords.
|
| This is aesthetics, I won't claim that what I'm saying is
| more than a (perhaps popular) subjective opinion. But I will
| point out that at least the way I read programs, the KEYWORDS
| are the OPPOSITE of what I want to EMPHASIZE when reading
| code.
|
| I actually want the keywords to disappear so that my eyes can
| focus on the variable names and see the data flow. That, by
| the way, is also why punctuation to mark blocks { ... } is so
| much easier for me to visually parse than BEGIN ... END.
| augustk wrote:
| You could use a syntax highlighting theme where reserved
| words are gray for instance (if you want them to fade into
| the background).
| abecedarius wrote:
| There's someone working on a more modern-style Oberon dialect
| called (iirc) Oberon+ or Oberon Plus. Can't remember much more,
| and the term seems hard to search for when there's some AMD
| chip with that name.
| zvmaz wrote:
| > Project Oberon is an amazing piece of computer science and
| amazing tool for teaching. The book and the code demonstrate,
| without any tiny amount of doubt, that it is possible to build a
| usable computing system small enough to fit in the head of a
| normal programmer. That, in my not-so-humble opinion, is a truly
| great achievement and I am in awe of Niklaus Wirth and Jurg
| Gutknecht for it.
|
| As I wrote in an earlier post, the enthusiasm of the author is
| contagious.
| JadeNB wrote:
| The capitalization stripped out by the title mangler is
| significant: Knuth's creation is called TeX, not Tex (and
| actually the X is a capital chi, Kh).
| namuol wrote:
| A noble effort, no doubt. But it would be nice to see a web
| adaptation, since most of our reading happens on a multitude of
| screens these days. Might have a higher impact on readership than
| better typesetting.
| dataangel wrote:
| Is there any copyright issue with the community editing and
| republishing as described in the README?
___________________________________________________________________
(page generated 2024-01-06 23:01 UTC)