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

Having once been poor I understand you, but this is missing the bigger picture. If you're going to improve at mathematics you need to put serious time into it.

Instead of an hour of extra work every day, you're doing math instead. At minimum wage that's around two grand lost over a year. Even if MathAcademy was free.

Also, I recall seeing MathAcademy being free if you can demonstrate financial need.


Are you sure about boxed integers? Perhaps you mean floats? As far as I know Ocaml uses the typical integer/pointer divide.


IIRC it has 31-bit integers, which means you can't natively work with 32-bit data without widening.


or 63 bits on 64 bit architectures.


They get the reigns when they're an adult. The prior poster did mention supervision.


Does it have a native compiler and/or types? Basically, can it get in the ballpark of SBCL's performance?

It'd be nice to have something cleaner than Common Lisp, and a much smaller image size. If it has decent performance too, I'm sold.


Janet uses a bytecode VM that's faster than many dynamic languages but won't match SBCL's native compilation performance; it has optional type annotations for documentation but not for optimization.


It's a lightweight embeddable interpreter and runtime, similar to Lua. Dynamically and strongly typed, but no native compilation. Easy to call C libraries, or embed into C projects. In my testing, it's roughly twice as fast as Python for similar tasks. You can "compile" a project by embedding scripts and resources with the runtime into a bundled executable.


Janet does compile to standalone executables with jpm


Just keep in mind that these executables are the Janet bytecode interpreter bundled with your bytecode, not “real” native executables.


No, they are actually real executables without the need of an external runtime. You can get images also if you like. See quickbin in the jpm man page.

> Create a standalone, statically linked executable from a Janet source file that contains a main function.

and discussion here

https://janet.guide/

> My favorite feature of Janet, though, is something that sounds really dumb when I say it out loud: you can actually distribute Janet programs to other people. You can compile Janet programs into statically-linked native binaries and give them to people who have never even heard of Janet before. And they can run them without having to install any gems or set up any virtual environments or download any runtimes or anything else like that.

They're not super tiny, though. A hello world I just did is about 727K.


No, gp is correct, the 'real executables' are a VM image with the interpreter baked in. The only native code in the binary is the interpreter. Janet code does not compile to machine code.


I understand your point, but by similar logic I can argue any language is interpreted because nothing compiles down to microcode. The point is you don't need janet-specific external dependencies in the environment. I don't differentiate between this and an inefficient compiler.


> I can argue any language is interpreted because nothing compiles down to microcode

Not every processor architecture uses microcode, so this doesn't hold up.

> The point is you don't need janet-specific external dependencies in the environment

Sure.

> I don't differentiate between this and an inefficient compiler

A compiler is the general term here, but the target is not. Targeting the native architecture for a CPU vs targeting a bytecode VM are quite different and have pretty important implications for performance, portability, memory usage, etc.


The distinction matters because the resulting executable is not (significantly) faster than running the program as a script.


I think the distinction (from the OP’s perspective) is that it’s “just an app” to the end user.

When I download the Slack desktop app, I might know it’s running on electron because I’m a programmer. But I didn’t have to download and install nodejs or anything else. As far as I’m concerned it’s a completely self contained application.

The end user needn’t download and install Janet or even know that Janet exists.

That can obviously be done with any interpreted language, but Janet makes it really simple out of the box.


From the book you linked:

> But in order to produce native code, jpm actually:

> 1. Compiles your Janet source code into an “image.”

> 2. Embeds the contents of that image into a .c file that also links in the Janet runtime and interpreter.

> 3. Compiles that .c file using your system’s C compiler.

https://janet.guide/compilation-and-imagination/


Tangentially, image-based development is possible, reloading images into the REPL for more interesting workflows: https://alexalejandre.com/notes/exploring-janet/#image-based... but it's a WIP.


So after all those steps, it is actually compiled native code that you run?


Yes, but the code portion of the executable is really the Janet interpreter, while your code lives in the data segment and is not in the native form.


This is not a replacement for Common Lisp. It is in the same niche as Guile (but quite faster).


Yeah, I see Janet as "what Guile intended itself to be", though it is quite a bit smaller (in some ways that's a postive). I find the choices it made to be more pragmatic and it's far more accessible in non-linux environments since Guile tied itself closely to guix.


Current Guile it's much faster.


There is a balance though, because large organisations tend to ossify, yet the environment continues to change.


That was just an excuse by Valve. The reality was that they were unable to finish numerous HL attempts due to the shortcomings of their organisational structure and somewhat absent/aloof/fickle top management.

Maybe they’ve finally recognized and fixed the real problem. Maybe not. We will see in future performance.


While I am sure that may be part of it.

How they have built games recently seem to backup what they said.

Aperture Hand Lab and HL:Alex was VR and partially pushing the Index.

Aperture Desk Job I can’t remember the name of was for the Steam Deck.

The way they have released games seem to backup what they are saying.


HL: Alex happened because "upper management" (aka the people with the actual power in their amorphous organizational structure) was engaged, and wanted a major title in VR. Major titles do not happen otherwise; excitement by the troops only goes so far, because there will always be setbacks and grind.


I wish there was a new generation of HP-48, just with a faster core and better screen. :(

I have a SwissMicro DM-42, which when setup properly is similar to a HP-48, just minus graphing capabilities. Still want a HP-48 refresh.


I want to second all recommendations of SwissMicros. I own DM15L (~$150), DM41X (~$220), and DM42 (~$250), and they are all absolutely excellent specimens. Not a single complaint. They are easily user serviceable, they have a very high build quality and feel like they will last decades (matching modelfkeyboards dot com build quality). The DM42 has a user-enabled N-stack so you can input algebraic expressions of any arbitrary length. The DM15L is an advanced calculator you (or at least I) can grok completely end-to-end, and packs it all into a compact form; I actually prefer to grab the DM15L before the DM42. The DM41X is also an excellent specimen. It includes the ability to {,un}load module files which are dumps of the old HP-41CX module cartridges. I love every single one of them, and cannot shill (for free) SwissMicros enough. You've beheld Swiss watches, now behold a Swiss calculator!


Check my post history, I hate ads. This isn't an ad.


The hp-50g is pretty nice (I know I know, unpopular enter key location), its USB power and SD card make it quite convenient. Of course the screen is the same as before, but the CPU is faster afaik

And then of course there are many HP calculator emulators and others for android


The 50g screen has only slightly (131×80 vs 131×64) higher resolution than the 48G series, but it has vastly better contrast, and, thanks to improved fonts and other UI improvements, the built-in software on the 50g also makes significantly better use of the limited screen real estate.

N.B.: Meta Kernel[1] provides many of the 50g UI improvements on the 48GX — 49g/50g OS is based on Meta Kernel — but installing Meta Kernel in RAM requires a memory expansion card that, at current used prices, costs nearly as much as a used 50g (plus a steady [semi-yearly IIRC] supply of CR2016 coin cells to sustain the RAM card when the calculator is powered off).

While I also prefer the aesthetics and keyboard layout of the 48 series, the 50g with its bundled software suite stands as one of the most hacker-friendly handheld computing devices of all time: while documentation and development tools for the 48 series were widely available, it wasn't until the 49g that self-hosted versions of these tools (System RPL (de)?compiler, Saturn (dis)?assembler, library creation and extraction tools) were bundled with the base OS.

[1] https://www.hpcalc.org/details/213


I'm guessing that you have newRPL. Have you tried putting DB48/DB50n firmware on it? That does have graphics (and RPL). I haven't had time to get familiar with mine, so I can't comment further on capability.


I used to think the same as you about 1-based indexing in Lua... until I tried using Lua in a game engine. I was constantly getting hit in the face with problems (e.g. coordinate systems and off-by-one errors), even after spending far too much time trying to abstract around this mismatch to make these problems go away.

In theory I was okay with the indexing. In practice it was an absolute PITA.

Plus there were other numerous papercuts; it felt like Lua was actively fighting me every step of the way. I went from liking Lua to absolutely despising it.

In the end I switched to C++11, which amazingly was much more productive. As in night-and-day difference.


If that rather benign comment makes you almost throw up...


One thing I've learned watching politicians the past few decades is that laws are guidelines. If the political will exists, politicians will find a way.


Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: