๐พ Archived View for bbs.geminispace.org โบ u โบ norayr โบ 16405 captured on 2024-05-26 at 16:54:00. Gemini links have been rewritten to link to archived content
โฌ ๏ธ Previous capture (2024-05-12)
โก๏ธ Next capture (2024-06-16)
-=-=-=-=-=-=-
Re: "Why did Wirth's languages never see widespread adoption..."
some people try to write in oberon:
โ simple snake game written with raylib in oberon.
as you have noticed voc compiles to see, it is a fork of ofront, which was inherited from op2, classical compiler from eth system.
it means it produces very readable, but c code. libc is a dependency, c compiler too. but the generated c code is safe, and there is a good runtime.
it is portable this way. if it was part of gcc, recompiling gcc takes lots of time, recompiling our compiler - 5 seconds, if compiler only.
we can use gcc, clang, tcc, msvc underneath. i used cc65 with it
Apr 26 ยท 4 weeks ago
๐ norayr [mod] ยท Apr 26 at 21:26:
in 2007-8 i have been written a x86 asm backend for the newest (back then) wirth's oberon-07 compiler. then binutils' linker was used to link the resulting executable. i wanted to develop it further and turn it to what vishap became, but there were licensing issues.
it was inspired of fpc, generated very small statically linked binaries, 0.7 kb was the minimal size. only dependent on two kernel calls: mmap and exit.
but anyway, it's not in the shape to use as voc. voc is what is practically useful.
๐ norayr [mod] ยท Apr 26 at 21:29:
for some time i was fan of oo2c. it is still available for downloads on sourceforge, it also translates to c, but to asm like unreadable c. it has generics though. it has very nice adt library.
no oberon compiler has lots of libraries and code available like pascal.
so in order to write that irc bot, first i made a wrapper for unix sockets, then implemented some part of irc protocol, then only the bot logic.
for vipack i had to implement base64, http protocol's part (only GET, but for both cases, when content-length is known or not), then i made a wrapper for mbedtls, then i inherited from my http class, and changed methods read, write, connect, disconnect to use tls versions.
๐ฝ TKurtBond ยท Apr 26 at 22:06:
I've enjoyed using the vishap oberon compile on occasion. Thanks for making it available! I found out about the package manager by reading this thread, and I'm quite interested!
๐ฝ TKurtBond ยท Apr 26 at 22:10:
I really found Writh's Oberon very inspirational, both the programming language and the operating system. The book "Project Oberon: Design of an Operating System and Compiler" is very impressive. I also particularly liked Oberon-2. The fact that Wirth made his later developoments in Oberon the language and the operating system and the book available on the Internet is also very inspiring. I wish they were a little more accessable, though.
๐ฝ TKurtBond ยท Apr 26 at 22:11:
I also like Modula-3, and wish it was more accessible as well.
๐ eddos [OP] ยท Apr 28 at 07:17:
The good and bad, for me, about Pascal is that there aren't 1 million websites that have solved every problem for me. With python I just do a search f or my problem and get an answer
I think that's a quality of python itself, due to how popular it is. I've found that most other languages don't have this either, so it might not be a thing with pascal.
i never liked this '\n' and printf because we pay for it with preprocessor
s (c requires cpp preprocessor), defines, macros, and complex compilers.
I never thought of it this way. But I don't know if a simple \n needs a pre-processor, though.
๐ eddos [OP] ยท Apr 28 at 07:19:
for m3 i know - cm3.
Thanks, I'll check it out.
for oberon, i am biased. i have my project i work on since long ago.
Honestly, this is really impressive. VOC looks very mature. The package manager is very cool too.
it means it produces very readable, but c code. libc is a dependency, c compiler too. but the generated c code is safe, and there is a good runtime.
Really? How do you ensure the safety of the C code? And how is the mapping from oberon to C?
so in order to write that irc bot, first i made a wrapper for unix sockets, then implemented some part of irc protocol, then only the bot logic.
๐ eddos [OP] ยท Apr 28 at 07:20:
That doesn't sound so bad. I know you usually wouldn't need to do the first two steps but after you're done, you could use the protocol implementation for other projects. They're always there.
๐ norayr [mod] ยท Apr 29 at 02:32:
on safety of c code: it is a generated c code. likewise writing in assembly is not safe but assembly generated from oberon or ada is safe. (:
another addition is this example: oberon arrays always have size. even if you expect in the function
VAR str: ARRAY OF CHAR
when you get str, you know the size. we pass the size as an additional argument, it is visible in c code, but hidden in oberon.
oberon compiler which produces machine code would send an oberon string which is actually a struct with one field for size. well voc also keeps arrays as structs with one field for length.
๐ norayr [mod] ยท Apr 29 at 02:40:
TKurtBond, on package manager, my dream is to be able to
Why did Wirth's languages never see widespread adoption besides Pascal? Even Pascal is not used much nowadays outside of Delphi and Lazarus. I tried Pascal myself and I found it to be a nice language structurally, but I also found it to be missing basic features that relate to writing the language itself (example: not being able to insert newlines into strings like you would do in C via '\n'). I also don't like how much "modern" Pascal is centered around just 2 compilers: FreePascal and...