HNHacker News
TopNewBestAskShowJobs

valw

466 karma · joined September 15, 2014

Mostly a Clojure / JavaScript / Scala / Java programmer.

Love to program all sort of stuff from websites to artificial life systems. Love thinking about programming even more.

Love mathematics. Program mainly because it's the easiest way to build my ideas for me.

I want computers to enrich people's lives, not the other way round.

submissionscomments
valw··on Ask HN: Why do new(ish) programming languages eschew OOP features?
> The most telling sign is how many FP languages are in existence today. If it was such a good thing we wouldn't need them all.

This is a silly argument. FP means only first-class functions and immutable values, and the vast majority of FP languages agree on those.

But there are many other design decisions for a programming language - type system, laziness, purity, homoiconicity, and whatever other features, paradigms or constraints people might find desirable. THIS is what explains the diversity of FP languages.

Btw, there's the exact same phenomenon in OOP languages. They all agree on classes, and differ on hundreds of other aspects.

valw··on Eva – A distributed entity-attribute-value database in Clojure
One thing that's nice with Datomic (don't know about Eva, but probably the same) is that syncing data to other stores is straightforward, thanks in particular to the the easy change detection.
valw··on A general-purpose probabilistic programming system with programmable inference
> Since Clojure has no statistics / ML ecosystem afaik, I am not sure why you mention it.

I mentioned it to illustrate my point, that semantics and other aspects matter much more than syntax in many cases.

(Btw Clojure does have a ML / stats ecosystem, in part via the JVM, though certainly not as developed as Python / Julia / R. For instance, Anglican is a probabilistic programming language embedded in Clojure: https://github.com/probprog/anglican).

> For someone using math, "programmability" and the other aspects you mention are certainly higher in a language that emulates how we think about the problems.

Sure, but syntax is just about notation - semantics are much more important to achieving nearness to a mental model. If you can't express your mental model in another notation than the one you're familiar with, then you probably don't have a very deep understanding of said model.

Continuing with my example, prefix notation for matrix multiplication does not hurt _at all_ my ability to reason about linear algebra - it sometimes even clarifies it.

I also think you misinterpret what I meant by programmability, which is not the same thing as 'ease of programming' - more like how smoothly various parts of a program interact. If for the sake of syntactic sugar you've introduced a proliferation of different programming constructs with no unifying abstraction, then the other parts of the program will need to make a proliferation of case distinctions as well - that's one way to hurt programmability.

valw··on A general-purpose probabilistic programming system with programmable inference
> The matlab style syntaxt is infinitly better for ML, stats and math.

Syntax is a secondary concern for all but short-term, small-scale programming.

When it comes to making scalable software systems (scalable in every sense of the term, not just performance but also feature growth etc.), syntax is really not the biggest concern; as such, optimizing for syntax can be detrimental to other more important aspects (e.g composability, reusability, programmability), and focusing on syntax means you're not paying attention to the really critical stuff.

I mostly work in Clojure where _all_ operations use prefix syntax (e.g you write (+ A B C) instead of (A + B + C) for addition, and + is just a function). Trust me, it's unfamiliar at first, but it makes reasoning about the program MUCH saner than all the special cases and irregularities that language designer bake into the language just to make some operations infix.

valw··on Simplicity Made Easy
If people wonder, this is NOT the same notion of 'simplicity' at all than in the classic 'Simple Made Easy' talk: https://www.infoq.com/presentations/Simple-Made-Easy/

I think a more relevant title for this post would be: "any paradigm made straightforward in Perl 6".

valw··on Cement Produces More Pollution Than All the Trucks in the World
Yeah, I was saying this to add to what you said, not to disagree with you - sorry if I didn't make that very clear. I on the same quest as you are.
valw··on Cement Produces More Pollution Than All the Trucks in the World
> f' off about calling people "the most severe cause of climate change" for eating a beef sandwich without considering anything else. It's unhelpful, provocative, and completely incorrect.

That's an entire mischaracterization of my argument, which was about willingness to change one's lifestyle in general, not specifically about eating a beef sandwich.

valw··on Cement Produces More Pollution Than All the Trucks in the World
> With that said, I don't emit that much (all things considered)

Cool, how much? IIRC, sustainability would require an individual average below 2 teqCO2/year.

> Besides, would money not be better spent curing cancer?

Look at what the world would look like if climate change is not prevented: https://bigthink.com/strange-maps/what-the-world-will-look-l.... Think of the consequences in famines (whole countries transformed into deserts), flooding, and the mass migrations and wars that would ensue. So no, cancer is not the priority, not when people will die by the hundreds of millions before reaching the age for getting cancer.

> I'm not sure that I believe the "impending doom" stuff about global warming.

Then you are in denial, and need to be exposed to more science. Again, sorry for being blunt.

> Humans are the most remarkably adaptable species on the planet; we will adapt to a hotter earth if need be.

Yeah sure, we can't individually give up on our beef sandwich, but we will have no problem adapting collectively to most of our current living spaces becoming uninhabitable.

valw··on Cement Produces More Pollution Than All the Trucks in the World
> I've seen numerous promising business ideas to capture carbon and convert it into useful materials; I think it's more feasible to do that than to force veganism on every one.

Yeah, we've all seen them - they make for fantastic headlines. None of them is as viable as protecting forests / planting trees by a long shot. They systematically fail to mention that the energy consumption is super high or that they're not scalable in another way - at least not in time.

> Cattle likely won't change. I'm going to keep eating meat [...] more feasible to do that than to force veganism on every one.

You don't need everyone to go vegan - we only need people to eat a lot less meat and diaries, and / or choose meat with a smaller footprint (e.g chicken). It's simply not reasonable to use 40% of arable lands to feed cattle given the environmental and food challenges of the 21st century.

If you're not willing to make the relatively small lifestyle change that is changing your diet, then let me tell you with blunt honesty: you're an instance of the most severe cause of climate change - privileged people not willing to give up on some of their comfort. This attitude is also collectively irrational, because climate change if not prevented will force us to much more radical lifestyle changes. I do hope you will reconsider.

valw··on Cement Produces More Pollution Than All the Trucks in the World
Yes I'm sure - unfortunately most of my references are French, so I don't think it's useful to share them here.

I do agree with the sad statement that we're generally lacking a scientifically rigorous and pragmatic leadership in climate activism.

valw··on Cement Produces More Pollution Than All the Trucks in the World
> At some point, pulling energy out of thin air will end up cheaper than doing expensive drilling operations.

A lot of people seem to believe that abundant clean energy is a sufficient solution for our environmental problems. A huge part of GHG emissions is due to deforesting and cattle, which has little to do with energy consumption.

History also seems to show that giving humanity abundant energy will only lead to it wrecking itself in some other way. Sustainability is simply not compatible with our crazy paradigm of unlimited growth and consumption.

valw··on Cement Produces More Pollution Than All the Trucks in the World
Regardless of the controversy on the risks of nuclear energy, don't overestimate it's potential. We simply can't build nuclear plants everywhere we need them. We still mostly need a reduction in energy consumption and deforesting.
valw··on Cement Produces More Pollution Than All the Trucks in the World
Careful: having the entire world adopt the living standards of Western countries is about the best way to guarantee that climate change makes the planet inhabitable by 2100.
valw··on Cement Produces More Pollution Than All the Trucks in the World
> This only works if we are sure that the forest will stay a forest for several hundreds of thousands of year

You do realize that carbon sequestrated in a forest 100ks of years is prevented from contributed to global warming during all that time period, right?

> Not consuming fossil carbon means it will stay in the earth mantle for a geological time.

Nobody's arguing against that. But it's silly to argue that not consuming fossil fuels is a better solution than carbon sequestration. We urgently need to do BOTH. When your house is burning, you don't choose between calling the firemen and using the extinguisher - you do both.

> So carbon offsets by planting tree is a scam, and we need better than that.

That's naive and simplistic. If carbon offsetting was widely adopted, it would 1) be a fast way to start our transition towards a sustainable economy and 2) encourage reducing fossil fuel consumptions as it gets more and more expensive (as it will inevitably).

When it comes to fighting climate change, what matters is results, not this sort of uninformed rethoric.

valw··on Cement Produces More Pollution Than All the Trucks in the World
Have you considered that once they're dead, they stop farting? Methane counts too!
valw··on Cement Produces More Pollution Than All the Trucks in the World
Climate change requires a call to arms for everyone.

Many scientific experts don't believe that enhanced technology can be the main solution. True, technology can be a part of the solution, but changing our values and life habits are much more important. That's why top recommended environmental measure is carbon taxes, not subsidizing energy efficiency.

We've already made dramatic technological progress on our energy efficiency since the industrial era. This has never prevented our emissions from increasing - it's usually only made pollution more affordable and therefore more widespread; fuel efficiency in car engines is a good example of that.

Spreading the belief that technology will eventually save the day is not helpful, because it gives people an excuse to postpone changing their lifestyle, and we cannot afford that.

EDIT: forgot to post, Bret Victor is with you: http://worrydream.com/ClimateChange/

valw··on Cement Produces More Pollution Than All the Trucks in the World
You seem to imply that planting trees cannot durably decrease the CO2 levels in the atmosphere; if so, your reasoning and conclusion are incorrect.

Increasing the biomass of trees (e.g, growing a new forest) does reduce the CO2 levels; true, each tree in this forest will at some point die and re-release its carbon, but another will grow in its place; therefore, if the forest has grown and stays there forever the the result will be a net negative contribution to CO2 levels forever as well.

That of course does not change the fact that carbon offsetting alone is NOT a sufficient way to tackle climate change. Please do reduce your carbon footprint people, and encourage others to do so. Of course, there's nothing wrong with planting trees in addition (not instead of) reducing your emissions - you can think of it as charity for the planet; if you're interested in donating money so that forests get protected / grown, I recommend Stand For Trees: https://standfortrees.org/en/#protect-a-forest (I'm not affiliated with them).

Please people, be careful about what you write on these topics. We really need a high bar on scientific rigour on these topics if we are to act effectively.

valw··on Clojerl – Clojure for the Erlang VM
Another reason might be the "cultural" aspects of Clojure, and their impacts on its ecosystem - in particular simplicity and stability are paramount, whereas the Elixir ecosystem seems to put more emphasis on immediate ease of use and elegance à la Ruby, at the cost of doing some "magical" designs which you tend to not see in the Clojure ecosystem.
valw··on Use Coq in Your Browser: The Js Coq Theorem Prover Online
As a Frenchman, can confirm that the French homonym to 'bit' is the english homonym to 'Coq' ;)
valw··on The Mathematical Hacker (2012)
Then I might have misunderstood what you meant by "integer-arithmetic recurrence"; my understanding of it was that it was the traditional recursive implementation of Fibonacci, which has much worse complexity than matrix exponentiation, and is not the same algorithm at all.
valw··on The Mathematical Hacker (2012)
A huge 3rd category of programmers is entirely missing: those that don't care about abstraction at all, be it mathematical or linguistic. I think the priority for our industry is to get those on board, then we can discuss what tools for abstraction they should specialize in.
valw··on The Mathematical Hacker (2012)
> If you want precise results for large sizes, then the integer-arithmetic recurrence is faster than computing the square root of 5 to very high precision and raising it to the nth power.

Know what's even faster? Exponentiating a 2x2 matrix of integer coefficients. And again, that's what a bit of math tells you, so I think the point of the author holds.

valw··on Foundations of Mathematics (2015) [pdf]
You might be interested in the works of Gérard Huet! http://gallium.inria.fr/~huet/PUBLIC/FSCD16.pdf
valw··on Supdate – A Clojure library for transforming nested data structures
Interesting! In supdate the transform would be:

{:a {2 inc}}

valw··on Supdate – A Clojure library for transforming nested data structures
As the author, I fully agree with this description!

The cost of abstraction should not be ignored, and that's why a lib like supdate sometimes makes sense before reaching out to Specter, lenses etc. (although I love those too!)

valw··on Go makes it easier to write correct, clear and efficient code
Any comparison of languages in the form "language X is generally better than language Y" with no additional project context or problem domain is going to be an extremely naive one, to the point it's not relevant to anyone having to make pragmatic tech choices.

This article is no exception.

I'm not partial to Go, Java or Python, but I do wish this sort of article stopped making headlines, leaving room for finer analyses and experience reports. These are what we really need.

valw··on What Is a Manifold?
Nice article, it would have been nice to add a word or two about manifold embedding though.
valw··on Elementary Applied Topology (2014)
I'd take the 'Elementary' qualifier with a grain of salt here :) - there are more elementary notions of topology (such as point-set topology, continuity, connectedness, compactness etc.) that can already get you pretty far in many practical situations.

Thanks for posting this, added to my reading list!

valw··on State of Clojure Survey 2019 Analysis
I've had a relatively high degree of proficiency with other languages by several accounts, including Java, Scala, and JavaScript. Yet I've observed empirically that I am usually much more productive in Clojure for the sort of programs I write (high-level software: web apps, components of information systems, data plumbing, etc.). This is well I ended up adopting Clojure professionally: after failing repeatedly to reproduce this productivity in more popular alternatives.

Regarding the benefits, for me it's the practical benefits of interactive development and the simplicity of everything in the Clojure ecosystem, which allow me to focus.

Of course, I would encourage everyone to be open to alternatives to Clojure!

valw··on Stop Learning Frameworks
STOP HAVING UNNUANCED OPINIONS about programming, they don't work and waste everybody's time.

Now be mindful of the work you're doing, and be careful about the tradeoffs of your tools.

← PreviousPage 3 of 5Next →