Hacker Newsnew | past | comments | ask | show | jobs | submit | pgen's commentslogin

The author has kindly provided you with simple, readable, and free code. If you find it incomplete or unsafe, you can always modify it and contribute your changes if you wish to improve it, in accordance with the licence; and thank him while you're at it.


Moving from the USA to Russia for the office suite!


They use LibreOffice, which is open-source. [0] That suite is part of the The Document Foundation [1] which headquarters are in Berlin, Germany. How is this related to Russia?

[0] https://en.wikipedia.org/wiki/LibreOffice

[1] https://en.wikipedia.org/wiki/The_Document_Foundation


The article only mentions LibreOffice in connection with Denmark, not France.


Since when did LibreOffice on Linux become "Russia"?


It never did,

but the article mentions ONLYOFFICE which seems to have strong connection to Russia, this is what your parent meant


Thats open source self hosted software. If you dont trust the prebuilt binaries you can inspect the source code and build it from source yourself


Thx, I indeed misread that in the article. Sill, it's AGPL v3.0 so if the French are ok with Open Source I guess they could always sever the cord.


Another great reason to switch to Linux!


I setup dual boot on a second ssd with CachyOS seven months ago and haven't looked back yet.

I was most concerned with gaming on Linux which is why I chose Cachy and was pleasantly surprised on how well it works. Not without some issues but compared to the growing annoyances I have with Windows 11 in the last year or so, I am more than happy with my decision.

I run a modern PC, Intel 14th gen, RTX 4070-Ti, CachyOS with Plasma desktop environment. KDE Plasma is amazing and modern in its own right.



I personally prefer ConTeXt (https://wiki.contextgarden.net/ConTeXt_Standalone).

It's comparable to LaTeX, but better in my opinion.


I could never get my head around the use case for ConTeXt. It seemed like LaTeX minus defaults that have been defined by typographers and the massive ecosystem. Care to say more?


C?


Why C in particular?


Using C would tie the run-time/compiled implimentation to specific set of platforms/hardware. aka each hardware platform would have it's own specific compiled C quirks/issues to deal with. aka big endian / little endian; 16/32 bit; etc.

A virutal machine is typically what is used when not targeting an actual machine/hardware. aka runtime environment.

Transpiling the language to java or webassembly would provide for wider range of hardware/platform support without requiring specific knowlege compiled C platform quirks -- big endian/little endian machine. Although, transpiling to awk with system() & named pipes/netcat, perl, javascript, and/or creating an excell 16 bit cpu[7]/virtual pc could work too.

"1st class"[0] concept implies there are no restrictions on where given language construct/concept can be used. for example: which side of the assignment operator a programming language concept/construct can be used.

"type inference"[1] is typically an interpreted/virtual machine language feature. aka C++ run time type inference (rtti) is done via instance of a virtual machine.

namespace / scoping is important aspect of modularity / avoiding code coloring issues / automatic translation between formats / 'reactivity'[2]

XL[3], oils/ysh[4], unicorn[5]/unicorn.js[6], awkgo[8], pawk[9] might be of interest.

Would suggest using ' JS/Ocaml/Rust' implimented/running under python (and/or bindings to ocaml/rust).

A related example/demo of this approach would be awk running under go[8] or python[9].

This approach would make it bit easier to experiement with doing modifications/customizations/extensions to 'js/ocaml/rust'.

Permits leveraging things that have already been written. aka editors/debuggers/graphics libraries etc.

Instead of going the 'super' environment, gawk extentions/additions to awk take the extend the 'sub-environment' direction[10] via extensions support for c/c++

----

[0] : https://medium.com/ryanjang-devnotes/who-is-first-class-citi...

[1] : https://en.wikipedia.org/wiki/Type_inference

[2] : https://www.linkedin.com/pulse/reactive-programming-principl...

[3] : https://xlr.sourceforge.io/

[4] : https://www.oilshell.org/

[5] : http://www.unicon.org/

[6] : https://alexaltea.github.io/unicorn.js/

[7] : https://github.com/InkboxSoftware/excelCPU

[8] : https://benhoyt.com/writings/goawk/

[9] : https://github.com/alecthomas/pawk

[10] : https://www.gnu.org/software/gawk/manual/html_node/Dynamic-E...


internet or web?


Warning, from the manual: Unison does not understand hard links.


You can also use smenu (https://github.com/p-gen/smenu) to make these and many other selections.


Great, but I hate these leading underscores.


It's for backwards compatibility of C compilers (and lack of proper namespaces). All identifiers starting with an underscore are reserved for use by compiler intrinsics and such. Although most compilers don't complain if your variable names start with a leading underscore, it is recommended to not have such identifiers in your code.


They will probably come with macro-based aliases, the same way they did it elsewhere.


This is so that the new keywords don't collide with existing code (the combination of underscore followed by a capital letter is reserved). For instance until C23, 'bool' was actually called '_Bool' internally.

Just as with stdbool.h before, there could be a stdlib header which wraps those internal names into something more human-friendly.


I feel increasingly annoyed with the idea that C can never have new keywords. As if that's some sort of huge problem with existing code bases.


Me too.


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

Search: