167 karma · joined November 17, 2019
I suspect the fundamental [business] limitation of a tool like this is that those willing to pay recurring big bucks (medium to large software shops) tend to rely minimally on 3rd party APIs.
Those who benefit the most (weekend projects, learning, rapid prototyping) where time is of the utmost value generally wouldn’t end up using it enough to become recurring customers.
I think implementing TypeScript natively would be a very interesting project, but the 'all valid JavaScript is valid TypeScript' part of the spec means you're also implementing an AOT JS compiler, which is much more challenging.
2) The type-checker is fairly ad-hoc, and I admittedly didn't look much into the literature here. The general idea is that since variable/function/class field types are explicitly typed, every expression can be checked for violating it's expected type. Implementation-wise, this is facilitated using the visitor pattern [1]. For certain expressions, some extra flexibility is allowed - for example, assigning an object of a child class to a variable of the parent class is not a type error.
[1] https://github.com/neeilan/neeilang/blob/master/src/type-che...
I’ve been working on this language for about 4 months now. While not “complete”, it does have a number of nice features like virtual functions, type inference, etc.
I reckon it will not be truly useful until GC is added, and that’s what I’m currently working on.
Any feedback is welcome and appreciated!
The point I had in mind was that a language like Swift may allow for both power and DSL-like expressiveness without requiring learning an entirely new language. In fact, standard arrays are implemented in Swift code (https://github.com/apple/swift/blob/master/stdlib/public/cor...) yet feel closer to say a Python list than a Java ArrayList from the user’s perspective.
From a quick look, stuff like FASTA/BAM parsing, translation, etc can be implemented in C-land a la numpy, and called from Python, right?
A language like Swift would also support the addition of powerful user-defined operators, as in the case of Swift for TensorFlow[1].
Language adoption is hard to drive, and I wonder if having domain-specific library calls built-in is worth the added effort for people in the field.
(https://www.penguinrandomhouse.com/books/232363/dreyers-engl...)
One of my favourite burger joints recently shifted from offering Impossible v2 to v3 for their patty, as v3 supposedly resembled meat more closely.
However, I thought that v2 tasted much better while avoiding the “uncanny valley” of meat substitutes... I wish they would keep them all available rather than phasing out older versions.
I definitely commit a “mistap” error like that at least once a week on my phone / iPad. I’m not sure I can spot and fix them that quickly!