9 ms·
This is a set of very biased articles, I mean just look at this for example: > Git is a dependency, which means perl is a dependency, which means a shell is a
by amedvednikov 6y ago
This is a set of very biased articles, I mean just look at this for example:
> Git is a dependency, which means perl is a dependency, which means a shell is a dependency, which means glibc is a dependency, which means that a lot of other things (including posix threads) are also dependencies. Pedantically, you could even go as far as saying that you could count the Linux kernel, the processor being used and the like as dependencies, but that's a bit out of scope for this.
What's the point of such nitpicking? You don't need git to use V, and the point of the no dependency claim is that bootstrapping V is as simple as `cc v.c` and the V compiler produces single file binaries, that are easy to deploy, without any dependencies on an interpreter/environment/libs etc.
I'm actually going to write a post debunking all of the claims in these articles, since I see them mentioned quite often (including measuring the compilation speed by using an unoptimized debug build + running vfmt + rebuilding the standard library with each compilation + using a 2x slower backend).
- kaba0 6y agoHow about refuting the memory leaks claim? Or the others in previous posts as well, that were calling out impossible features of the lang (that sounded like some ad) Nitpicking nitpicks is still nitpicking.
- amedvednikov 6y agoA memory leak that even the author admits is one line of code fix away? (free() on a global const) See the YouTube demo I posted which shows how V removes 100% of leaks in a complex graphical application (text editor).
- kaba0 6y agoWell, I will believe it when I see it, as well as the other hard to believe claims like I don’t know how many lines of code/second compilation speed, perfect C-to-V compiler, etc. I’m not sure how many of it is still up on the website, because some were called out and were taken down.
- amedvednikov 6y agoWhy won't you see it? It's public: https://www.youtube.com/watch?v=gmB8ea8uLsM https://www.youtube.com/watch?v=gmB8ea8uLsM You can also download it and try it yourself. As for compilation speed, here's V compiling itself in 0.2 seconds: https://pbs.twimg.com/media/EoAx9fsWMAE2M4U?format=jpg&name=large https://pbs.twimg.com/media/EoAx9fsWMAE2M4U?format=jpg&name=...
- judge2020 6y agoThe nearly 1 second compilation is impressive, but why claim it has 0.2 second compile time when using a cache? It doesn’t represent the real-world time it would take to compile v or another program from fresh in order to install it.
- tomcam 6y agoI often compile projects before the cache expires...
- amedvednikov 6y ago-usecache here means that vlib is cached. It will be the default in 0.2.1. The entire V compiler is built from scratch.
- vlang1dot0 6y agoAll memory leaks in C are one line of code away as well (calling free() in some place).
- 1f60c 6y agoJust FYI: on Hacker News, it's customary to add a little disclaimer to comments like these. Something like: (Disclaimer: I'm the creator and main developer of V.)
- amedvednikov 6y agoAll right, makes sense. Added it to my top level most upvoted comment here.
- Aeolun 6y agoLol, unless this person was ridiculously well informed on V, that was basically the only option I saw :)
- mst 6y agoDiving straight in to attack the critic (again) rather than discussing things usefully made it pretty obvious it must be the original developer. You don't generally see two people who behave like that managing to co-exist in the same project.
- uryga 6y ago> without any dependencies on an interpreter/environment/libs etc. no stake on either side, but the post specifically mentions this (though that was on vlang 0.1) > I claim that the V compiler has dependencies because it requires other libraries or programs in order to function. For an example, see the output of ldd (a program that lists the dynamically linked dependencies of other programs) on the V compiler and a hello world program: $ ldd ./v linux-vdso.so.1 (0x00007fff2d044000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2fb3e4c000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2fb3a5b000) /lib64/ld-linux-x86-64.so.2 (0x00007f2fb4345000) $ ldd ./hello linux-vdso.so.1 (0x00007ffdfdff2000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fed25771000) /lib64/ld-linux-x86-64.so.2 (0x00007fed25d88000) > If these binaries were really as dependency-free as the V website claims, the output of ldd would look something like this: $ ldd $HOME/bin/dhall not a dynamic executable
- amedvednikov 6y agolibc is the only stable system api, on non Linux system you don't have a choice to use anything else. Go tried, and went back to linking to libc, because of constant syscall changes. So I don't view having libc a dependency, it'd be like saying that macOS is a dependency. You can also use musl on Linux with V for 100% static binaries.
- zaarn 6y agolibc is not stable, glibc breaks plenty of times (try running some real old software without relinking glibc). The only stable system API is the linux kernel syscalls. Those basically don't break.
- vlovich123 6y agoThat’s true for Linux and why Go thought they could do this everywhere. It turns out that libc is the only stable interface for a lot of platforms (notably MacOS and many other BSDs if not all).
- CyberDildonics 6y agoI liked the design of V and gave it a try. I quit paying attention when I realized almost nothing worked like it was supposed to. Even hello world was difficult due to needing to configure all sorts of stuff to get tcc and configure it to compile correctly.
- amedvednikov 6y agoThat shouldn't be happening. We have lots of tests to make sure it works. Are you on Windows? Can you create a GitHub issue with `v doctor` so that it can be resolved asap.
- CyberDildonics 6y agoSorry, I already went down the road of broken promises and moved on. Make something that works out of the box. Package tcc with it.
- ylluminate 6y agoIt already is...
- Jenz 6y ago> > Git is a dependency, which means perl is a dependency, which means a shell is a dependency, [...] Indeed, this is a silly matter. In both sides.