4 ms·
Comparatively to a modern Delphi/FreePascal it is just very limited. This might be what someone is looking for in that Pascal land but is not my cup of tea. Ta
by FpUser 5y ago
Comparatively to a modern Delphi/FreePascal it is just very limited. This might be what someone is looking for in that Pascal land but is not my cup of tea.
Talking about language obviously. Not the whole computer system
- pjmlp 5y agoBy learning what was possible with GC enabled systems programming languages in 1990's hardware is how we can move beyond the unsafe layers of our current IT stacks.
- gavinray 5y agoPeople on C++ chat balked when I brought up the idea that garbage collectors were not inherently evil things, and that some languages with a (for a few of these, optional) GC -- like D, Nim, and (written a particular way) even C#, could be used for systems programming or OS'es.
- pjmlp 5y agoAsian Bing used to be powered by Midori for a while. Search Joe Duffy's keynote at one of Rustconf, towards the end he mentions that even proven wrong with Midori running in front of them, the Windows team was telling him it wasn't possible. By the way, F-Secure ships security keys with firmware written in bare metal Go.
- Rochus 5y agoThese are two different questions: should C++ have a GC, and is a GC language suitable for systems programming. There is actually already a GC which works well with C++ and is also used by some of the mentioned languages: https://www.hboehm.info/gc/ https://www.hboehm.info/gc/. Personally I think the C++ specification is already far too big and complex (so why adding even more stuff). A lot of GC languages were more or less successfully used to develop operating systems (even Lisp, Smalltalk and Java). From my point of view Oberon is not particularly suited for this purpose, but obviously it was used to implement the Oberon system (using some dark corners of the SYSTEM module and undocumented language features).
- pjmlp 5y ago1990's Oberon does indeed lack some features, as pointed out in EthOS paper, however Active Oberon has all the required features, comparable to Modula-3. And A2 is much more pleasant to use. This is why it is my favourite version of Oberon linage. Now it is mostly nostalgia, so it gets down to use Go, .NET Native, D, Nim, Swift, whatever, to reach similar goals. As for C++ GCs, the approaches taken by Unreal C++, C++/CLI and C++/CX are quite alright. However the whole language politics at Microsoft seem to have placed C++/CLI and C++/CX on the extinction path, and C++/WinRT is surely not a replacement for anyone that enjoys productivity over a renewed ATL experience.
- Rochus 5y agoJust wanted to mention that I finally released my Oberon+ version (including an IDE with semantic navigation and source-level debugger for Win, Mac and Linux), see http://oberon-lang.ch http://oberon-lang.ch. Also posted it on HN today: https://news.ycombinator.com/item?id=27855767 https://news.ycombinator.com/item?id=27855767. Currently the compiler generates LuaJIT bytecode (the VM is integrated with the IDE); a .Net CLI backend is work in progress, and an LLVM version is planned.
- Rochus 5y agoWhat do you mean by "EthOS paper"? Can you please provide a reference?
- pjmlp 5y agoSure, "Insight ETHOS: On object-orientation in operating systems" http://dx.doi.org/10.3929/ethz-a-000666071 http://dx.doi.org/10.3929/ethz-a-000666071 Scattered across the sections there are some remarks on some of the issues that lack of untraced references, or the existing finalization mechanisms were cause of attrition. In Active Oberon those complains are no longer valid. By the way, the author is relatively well know in research area nowadays.
- Rochus 5y ago
- FpUser 5y agoGC is very old concept. Nobody was ever prevented from using languages with GC. But as a whole we do not have to move. And frankly the dangers are overblown. My latest C++ product is of decent size and does not use a single explicit allocation. It is there though should I need it.
- pwdisswordfish8 5y agoHow does that deal with stack-allocated data that gets twiddled by some other code expecting that it will be able to do so, where that expectation outlives the actual stackframe itself?
- FpUser 5y agoSame way as GC enabled tools. At some level they all rely on massive libraries written in C.
- pjmlp 5y agoDepends on the OS and if the compiler toolchain is bootstraped or not. Apparently many forget C was on that role as well.
- FpUser 5y agoI am a practical man and will let others fight these holy wars. I take action when the real situation changes. I'll give you this example: on desktop I've always used Delphi and lately Lazarus to develop GUI apps. Basically instead of wasting my resources on endless stream of "how to develop GUI properly" coming from MS and changing every other year ( forgive exaggeration ) all my efforts on that front were to improve the actual products. Zero problems so far. Same on the backend. I do not have complaints from my enterprise clients about my backend servers misbehaving in any ways. If that happen I'll take action. Without it I have better idea about where my business expenses are going. This does not mean that I do not use GC based tools at all. There were few cases when client specifically requested particular toolset. Since they're paying for it I do not mind. When given free reign and this is what happens 90% I do what I believe is right.