[HN Gopher] Nullc: Fast C-like programming language with advance...
___________________________________________________________________
Nullc: Fast C-like programming language with advanced features
Author : blacksqr
Score : 61 points
Date : 2021-11-25 15:49 UTC (7 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| rcthompson wrote:
| I'm curious how it implements GC but compiles to C source. Does
| it just emit the source for the entire VM as part of the output?
| jb1991 wrote:
| I think the popular Nim language also does this.
| convolvatron wrote:
| VM? if you use your own allocator its pretty straightforward to
| run C code on a GC. there is of course Boehm, but its .. really
| slow and pretty fussy. since you own the compiler in this case
| you can even support object relocation (compaction) which does
| really* help a lot in total performance as well as footprint.
| klyrs wrote:
| If you use Cython to compile vanilla Python, it implements GC
| in the C source without the VM. I don't find that especially
| noteworthy... though I do wonder about the particulars of their
| GC implementation (though... ick, GC).
| karmakaze wrote:
| > nullc is a C-like embeddable programming language with advanced
| features such as function overloading, operator overloading,
| class member functions and properties, automatic garbage
| collection, closures, coroutines, local functions, type
| inference, runtime type information, modules, list comprehension,
| enums, namespaces, generic functions and classes
|
| Not exactly what I would call C-like in that it does a whole lot
| more. It is C-like in the way many popular languages are, that
| the syntax resembles C but that superficial similarity isn't
| really worth noting. It may be good marketing to get people to
| look at a new language though.
| Santosh83 wrote:
| More interesting tidbits:
|
| > Language is type-safe and memory-safe.
|
| > nullc library can execute code on a VM or translate it to x86
| code for fast execution. It can also translate nullc files into
| C source files.
|
| But sadly, although the project has been around for 11 years,
| development seems to have stalled since last year, at least
| going by GitHub activity.
| api wrote:
| Why is activity the measure of product quality? If I write
| something that works great and needs few updates is it
| inferior to something that's broken and gets commits every
| day?
|
| This is just a terrible metric of software quality that
| became standard without anyone discussing why.
| karmakaze wrote:
| I can make a guess why this might matter. For something
| that's not already widely used, we start with the premise
| that it is not finished in that it hasn't been exercised
| enough to know it is. With that a lack of activity
| indicates that edges are not being found and fixed. There
| could be an argument made that the way the software is
| developed and tested finds and fixes inconsistencies but
| that would have to be illustrated and not accepted as a
| given by statement alone.
| zdragnar wrote:
| > without anyone discussing why
|
| Why does it need to be discussed? Not actively maintained
| says it is either "done" or abandoned.
|
| It is also a (weak) proxy for popularity, meaning if I do
| run into an issue an active repo means I am more likely to
| get help.
|
| A quick glance at the git repo shows that it has builds set
| up on travis that are failing, and an unanswered question
| in the issue tracker. Neither of these inspire confidence
| that it will "work great"
| adwn wrote:
| Because programming languages are different from regular
| software: for a programming language to be useful, it needs
| an ecosystem of libraries, package management, and IDE
| support. It's not the 80s anymore, when everyone wrote
| their own libraries anyway, maybe shared them with friends
| or colleagues, and didn't expect anything beyond a small
| standard library.
|
| Today, a new language has a small window of a few years,
| after which it either achieves escape velocity, or re-
| enters the atmosphere and burns up. A new language which
| hasn't received major updates for two years, is effectively
| dead. It's a social phenomenon, not a technical one.
| ModernMech wrote:
| Work on long term projects like this tends to go in bursts.
| Stalled activity for a year isn't unheard of. This project
| had a lot of activity in 2011, stalled the better part of a
| decade, and then had a burst of 1600+ commits last year. This
| is the mark of a project that has renewed interest from its
| author.
| convolvatron wrote:
| I scanned the readme.md and found a few c++ style features listed
| in one of the earlier changsets. it would be helpful to have some
| kind of statement regarding the intent (i.e. c++ with less bloat,
| or novel type system, or whatever it is)
| oleganza wrote:
| FYI: nullc is a long-time username of Gregory Maxwell (here on
| HN, on Reddit and elsewhere too).
| gompertz wrote:
| I always get curious about languages like this; but the only one
| that ever stuck with me was the Pike programming language (circa
| '94). Pawn seemed somewhat decent too.
| kwertyoowiyop wrote:
| At the top of the first page of every "new language" link there
| should be some source code examples!
| b3morales wrote:
| The README is mostly a changelog -- there is a "Language
| Reference" in the wiki:
| https://github.com/WheretIB/nullc/wiki/Language-Reference
| although it's still pretty terse and really just a catalog. Is
| there an introductory document anywhere?
| rasengan wrote:
| I agree. This project is fascinating. It's unfortunate it
| doesn't have one of those cool websites with docs, examples and
| all.
| kf6nux wrote:
| > function overloading, operator overloading
|
| I think Go took the right approach with calling those bugs to be
| avoided rather than features to be implemented.
|
| Don't be clever. Be understandable to most readers.
| randomNumber7 wrote:
| Yes but then they created their own world of evil with the
| ducktyping aproach...
| dainiusse wrote:
| Exactly. I think some people complain about Go's limitations.
| But this gives back in readability.
| nullc wrote:
| Not sure how I feel about this!
| netr0ute wrote:
| Isn't this just a rebranded C++?
| me_me_me wrote:
| No, its C with Extra features, or lesser C++.
|
| Jokes aside, I might have a look at it over weekend, it would
| be nice to see some PR materials on their git repo. Why should
| one use it over C/Rust etc.
| posterboy wrote:
| Garbage collection is the antithesisto C. Yuck! If you want to
| offer an operating system so do it
| rzzzt wrote:
| C gatekeeping!
| Brian_K_White wrote:
| what a strange charge
___________________________________________________________________
(page generated 2021-11-25 23:00 UTC)