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

I am also American (born and raised in Chile). The Little Prince is extremely well-known over there. I am personally very fond of it.


Nice work. Some questions / observations:

Can you add methods to any type? There is an example of adding a method to a builtin type (string) -- can you add also add a method to a union type?

Any plans to add some sort of enum type? If yes, will it be possible to add methods to enums?

How do you support (or intend to support) Unicode? It says "Strings use ASCII encoding" -- why not UTF8?

The example with a timeout channel does not show how / when the timeout will be triggered. Is this a special kind of channel?

It says "Packages will be synchronized to the $HOME/.nature/package directory" -- will this respect the XDG standard directory structure, which defaults to $HOME/{.cache,.local,.config}?


1. nature can add methods to built-in types, example

fn int.to_string() { }

I haven't considered whether union types can add methods, so I tested it, and it seems to be possible, but this may cause some unexpected behavior, so maybe I should disable this possibility for now.

type test_t = int|null

fn test_t.hello() { println('hello world') }

2. Enum support is planned. I plan to use type declarations. Why hasn't enum been added yet? Nature has adopted a conservative syntax design, and I hope to hear more opinions and avoid affecting existing functionality as much as possible when adding syntax features.

type weekly = enum {}

So methods can be added to enums.

fn weekly.found() { }

3. UTF-8 should be solvable via a library. I haven't thought much about UTF-8 yet, but if it can enhance nature's usability, I'll implement it as soon as possible. Usability is a key focus for nature moving forward.

4. Select{} timeout handling does require a special timer channel, which will be addressed in the standard library. Currently, it can only be handled via ch.try_recv() and ch.try_send(), which do not block the channel.

5. Actually, this is the first time I've heard of the XDG standard. I will study and understand the specification.

---

I am not an experienced programming language designer, so thank you for your questions. I will carefully consider them.


There are some misspellings in the README, such as "natrue". Just FYI.


thanks, I'll fix it


In all honesty, would you hire this dude as YOUR lawyer?


He’s not experienced in this court to know what the judge likes and dislikes.

I’ve found it helpful to use lawyers who know the courts and people of the courts where my case is going to take place.


I can confirm this: I downloaded the old version of the app (on a Windows laptop), isolated it so that it would not auto-update, and then used it to download all my books (after the deadline had passed) and convert them with Calibre, which got rid of the DRM crap. You have to do both the downloading and the conversion on the same computer -- other than that, it worked perfectly for my more than 100 books.


Somebody did this recently for Advent of Code (some year, not 2024 necessarily). I don't remember any details, but the images were entertaining.


Probably by Fred Brooks, as summarized by Guy L. Steele Jr in https://dreamsongs.com/ObjectsHaveNotFailedNarr.html:

> Fred Brooks, in Chapter 9 of The Mythical Man-Month, said this: Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowchart; it'll be obvious. That was in 1975. Eric Raymond, in The Cathedral and the Bazaar, paraphrased Brooks' remark into more modern language: Show me your code and conceal your data structures, and I shall continue to be mystified. Show me your data structures, and I won't usually need your code; it'll be obvious.


Long live Clipper -- one of my first paid gigs. Amazing platform to write (compiled!) console-based applications with a DB living locally or on a networked drive. Something which does not exist anymore as a market.


XBase / Foxpro / Clipper apps are probably still used in India, widely, in small department stores, grocery stores, factories, medical stores, etc.

They are much faster to operate and more efficient for CRUD type apps then GUI based ones.


Same in Brazil. And users love them.


Take a look to what are using on Leroy & Merlin stores


Had not heard of them, had to google it:

https://en.m.wikipedia.org/wiki/Leroy_Merlin


Same here, good memories, compiling took up to 30 minutes, so during compiling we always went for a game of billiards. Coming back you found out that the compilation had crashed after 5 minutes, fix bug and start the same routine.


I don’t recall compilation being slow. The Clipper app for small businesses that my father created used overlays because it couldn’t fit in memory, yet compilation was still fast (all of this was happening on an XT). Linking, on the other hand, was painfully slow, but one could use Turbo Linker if overlays weren’t needed—TL was unbelievably fast. Later, Blinker came along. It was slower than TL but offered excellent support for overlays (and a bunch of other useful features) while still being much faster than MS Linker.


Overlays were supported even in Turbo Pascal 3.x, which, IIRC, came out in the same decade as Clipper, maybe before or around the same time.


I used Clipper Summer '87, and Clipper 5.x on a 386SX, running at 20MHz, 2 MB, and a 40 MB HDD.

What were you doing for 30 minutes?!?


You sure it wasn’t a DX? The SX only came out in ‘88.

Either way, that would be a hell of a high end system for that time.


I think you just showed lack of knowledge on Clipper product names.

Before 5, they had season names, I didn't mention to be using Clipper Summer '87 in 1987, rather having used it.


Sorry, I misunderstood then!


Same here. I really enjoyed working with Clipper. The fun ran out when my application was bursting through the available memory though. It would be nice to have a 64 bit linux/macos/windows Clipper-like compiler.


Well that exists Harbour https://harbour.github.io


Yeah, I know about it. However every time I've tried to use it I ran into all kinds of problems.


Also, there were a ton of very powerful third-party libraries too!


Kudos for your project -- it is great fun and a learning experience to implement your own HTTP server in a low(er)-level language.

One question: you say that "Transfer-Encoding: Chunked responds with 411 Length Required, prompting the client to resend with Content-Length". Is there a reason for doing this (security perhaps), or is it just a choice?


Sorry for answering myself. I paid more attention now, and it seems this is disabling chunked transfer encoding from the client to the server, which makes sense from a security / reliability PoV. Disabling it from server to client does not (IMHO).


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

Search: