That seems like a brittle approach to transpilation. A transpiler should translate all of the language's semantics, including resolving identifiers as symbols, and then choose legal names for them in the target language. Also, there is so much more to a language than its surface syntax.
I've never designed a transpiler (I'm not a programmer), but surely the correct approach is to transform the source code into its type-checked AST, and then translate to the target language from there?
> A transpiler should translate all of the language's semantics, including resolving identifiers as symbols, and then choose legal names for them in the target language.
Yes, it should; but it also makes things much more difficult. This specific transpiler indeed builds an AST, but does not care about identifiers, just emitting them as is [1] (I hope I found the correct place in the code).
There is a lot of confusion around those words. I personally make a distinction between a "compiler" and a "transpiler".
A compiler preserves the semantics - if you compile Scheme to C, you get a real Scheme program in C, with full semantics.
A transpiler does not have to guarantee that. It is much easier to transpile Python to JavaScript than it is to truly compile Python to JavaScript. A transpiler can tolerate some amount of leakage between worlds (think 'arguments' as a variable name in Python vs JS).
It really depends on your needs. Sometimes a transpiler is okay, sometimes totally inadequate.
I'm really sorry to be harsh but if you don't use programming languages and have never written a transpiler, why should anyone read your comment?
You critique the approach as brittle and yet the approach you propose doesn't solve the thorny problem gp described of a growing ball of reserved keywords.
I've written multiple transpilers and their comment is how I do it. Safely mapping identifiers is one of those many edge cases you discover as you go along
> resolving identifiers as symbols, and then choose legal names for them in the target language
The responsibility for avoiding collision with the target language is in the transpiler; it should mangle identifiers appropriately to ensure you can't accidentally hit a keyword in the target language.
They technically didn't say that they don't use programming languages, they said they're not a programmer. There's plenty of other people who use programming languages regularly, but not necessarily because they're into them.
> I'm really sorry to be harsh but if you don't use programming languages and have never written a transpiler, why should anyone read your comment?
Lots of reasons. If you can't come up with one then you're not the intended audience, and that's fine.
I made the comment for several reasons. Here's two: (1) I had high confidence that my understanding is correct and wanted to share my knowledge with others. (2) In case my understanding wasn't correct I was hoping someone would correct me, resulting in both me and others learning some interesting nuance.
As for why you in particular should read my comment: Curiosity. There are few traits that are as important to strategic thinking, creativity and success in reaching ones goals as curiosity. When I see something that doesn't map to my understanding of the world my reaction is to wonder whether I'm missing something. It has served me incredibly well so far.
Are you suggesting Ada Lovelace isn't capable of reasoning about a problem?
You can come up with an algorithm or system without knowing programming. Presumably we can agree the opposite, that being a programmer doesn't give you mystical insight into every programming problem.
Ultimately this isn't even a programming problem.
Timmy writes homework, Jimmy writes homework. They can name the homework however they want. Both go in the same pigeon hole. How can the teacher tell who did which homework?
It is. I too find my competence profile a bit weird.
I've been interested in security since I was 12 yet never worked full time as a software developer. I have done some coding, but that was over a decade ago, and even then it wasn't very much.
On the other hand I understand the theoretical foundations of formal languages quite well, as well as the engineering required to implement them. I'm comfortable talking about any stage of the compiler pipeline, I can recite the Lambda cube and which logics the interesting corners correspond to, and I'm designing a family of programming languages in my free time.
I understand digital design fairly well too for that matter.
What do you think of Ada's representation clauses and Zig's packed structs? Do they give you the syntax and semantics for arrangement (ordering, padding, widths), endianness, and control of bit order that you want?
Also, thank you for an educational comment.
Edit: I forgot to ask about your thoughts on Ada's and Zig's type punning.
> But I am certainly against a company marketing itself as a “defender of personal and human rights and freedom”, yet they are sponsoring a party that obviously doesn’t hold these values
No. Daniel made this donation privately. I own and lead the company too. Both I and several of my colleagues don't like that Daniel made this donation. You are misrepresenting the facts.
> this company will report individuals in the future to deport them maybe, 5 years later they are reporting others for disagreeing with whatever agenda that party is having, it’s always a slippery slope, never think it will end at xyz and that’s it.
You can choose to believe that, but it doesn't make it true.
> Goddammit it’s like companies are ALWAYS destined to turn to evil one way or another, it’s just how long it will take is the question. It’s a reminder that you should always host your own, trust nobody, none.
> what scares me is the mobbing of people against other that have a different opinion than yours, as seen in this thread.
I am dismayed by the anti-intellectual climate in the world as well, but HN is an oasis of empathy and curiosity compared to other platforms. Look at the people I've engaged with. Many of them vehemently disagree with Daniel, and with my position. They understand it, compliment Mullvad, and say they unfortunately have to leave. That's the way political discourse should work.
> Plenty saying they cannot in good conscience support Mullvad, while directly and indirectly giving money to people like Bezos, Musk or Cook, among others, or supporting politicians from both aisles, who have the power to do much worse at a greater scale. I call this hypocrisy, and it is widespread in social media driven mob mentality.
Good point. We should probably be more open about how much good Mullvad has done over the years. I've been so focused on just doing stuff, and not telling people about it.
> I like Mullvad the company, and I know that people might support politics I find despicable. Such is life outside of silly internet echo chambers.
I disagree. This thread contains tons of empathetic people who seem to understand each other, and disagree with each other. It's a breath of fresh air. Sure, there are also some angry posters who don't seem to lean into curiosity, but together we can make them the minority.
I'm sorry to hear that. Yes, Daniel and I own 50% each.
> obviously Berntsson has every right to his opinions and to express them
Indeed.
> and I also appreciate that someone can have control over an opinionated company and run it for one particular set of reasons but not for other causes that someone believes in
That is exactly the case.
> but in the end I just don't want my money supporting anti-people causes.
As is your right. Daniel made his choice and now you make yours, as a number of other people in this thread has done. Some believe this party is left-wing, others right-wing. Some approve of it, others don't. Personally I don't, and as I've said elsewhere in this thread I wish he hadn't donated. As do many of our colleagues. To be fair though, there are also colleagues who do seem to approve. And then there are those who don't seem to care either way.
Still, I'm glad you recognize the possibility that Daniel and I are able to keep our personal opinions separate from the mission of our company. This is something we live in our daily work as well. As a workplace I'm glad we're not a monoculture of 100% like-minded individuals.
I've known Daniel for 20 years. He's one of the most empathetic individuals I know. Neither he nor I wants to make our workplace a monoculture.
I get that you disagree with his choice, as do I. But please recognize that we've built this company together over 17 years. To suggest that you know better than me that he wants to create a monoculture at our workplace is ridiculous.
I'm not sure why you're arguing this point though. It seems we both believe he made the wrong choice?
I've known pretty far right people that are empathetic. That doesn't matter, given what they support, though. I think you're focusing on the wrong thing.
And given the party Daniel supports, saying he doesn't want a monoculture... it seems like you are being naive. There are lots and lots of right-wing people in the USA that over the years never said far right things... but their actions have shown a different story.
I think you need to judge Daniel on his actions, not his words or your gut.
You set the focus. I was simply responding to your comment, same as I am now.
Again, I'm not defending his choice, but no, I'm not being naive. Over the 20 years I've known him he has demonstrated his values through consistent words and actions. I'd share details but that's not my place to do. You may choose to believe me or not.
Your choices are to either end a 20 year friendship and enormously fruitful collaboration or defend someone who has demonstrated quite clearly that he holds repulsive, despicable beliefs.
Imagine you were of immigrant background and your closest friend gave millions of dollars to a party whose sole platform is to strip you of citizenship and kick you out of your country.
I would like to add one note: if I were an activist in Iran, or in any other way my livelihood would depend on strong privacy services, I might keep using your service and even be (slightly) more certain of the company's resolve to keep my privacy protected. Although I would be very aware of the irony. But choosing for one's own safety can override other concerns. Very few things in life are black and white.
Indeed. What I hear you saying is that you recognize there is a kind of consistency, and benefit, to Mullvad's position.
I'll admit holding the line like this, when most people don't understand the nuance, and most of those who do don't value it, is irrational from a business perspective. Then again we founded the company because of our political convictions about free speech, free press, privacy, mass surveillance and censorship.
I respect your choice to leave, and also appreciate that we're both making an effort to understand each other. I wish all disagreements were like this.
If y’all were maximally “business-rational” you would have taken the NPV of under-anonymizing your customers already and selling the data. Sure, it would tank the business in the long run but the short term profits could probably have been re-invested in the stock market or other endeavors for excellent returns. Plus once the reputation hit started coming home to roost you could have sold Mullvad to one of those large VPN umbrella holding companies.
I’m upset about this to, but honestly I don’t know what other VPN holds Mullvad’s reputation for genuine anonymity. When I learned that y’all take cash by mail, I realized that is fundamentally incompatible with bundling and selling customers data.
Iranians use VPNs simply because they want to access the internet. Mullvad services are too expensive for what average people make so i don't think it really matters.
> Some believe this party is left-wing, others right-wing. Some approve of it, others don't.
For a company that puts political principle so fundamentally at the core of its marketing strategy, it's astonishing to see this kind of stance being taken.
The man who owns half the company seemingly choosing to funnel his share of its profits to a political party that advocates the mass deportation of people is, in that context, something with significant consequences.
I understand how awkward the position you're in must be, but it's obscene to present this as somehow being a thing that one can be morally neutral on. In the context of rising fascism across the continent, it's dismaying to see a company that a lot of us rely on so decisively pick the worst possible side.
I was acknowledging gpvos position, as well as that of others, and then stating my own position on the matter. I as an individual understand that there are people who see this party as left-wing or right-wing. That doesn't mean I agree. I as an individual don't approve of this party or its rhetoric. Others do. None of this is Mullvad's official position.
Mullvad only concerns itself with its mission. Our customers and employees represent a wide spectrum of opinions. You may not like some of them. Regardless, Mullvad's position is that privacy is a universal right, regardless of political affiliation.
> I understand how awkward the position you're in must be
> Mullvad's position is that privacy is a universal right
this is kind of a confusing statement considering the source. if you hold that privacy is a universal right, but you profit from gating access to it (along with someone who appears to have directed this profit to an appalling political project), are you saying that this right should only be afforded to those who pay for it? or are you just cloaking your business model in a moral shroud?
> are you saying that this right should only be afforded to those who pay for it
Not at all. When we say we believe privacy is a universal right, we're saying that e.g. states and corporations that actively violate your privacy are in the wrong. We're not saying that Mullvad, you or anyone else are obligated to work for free in order to provide privacy as a service.
In some business, political and legal roles, we deem certain structural relations to be a conflict of interest regardless of what people on those roles actually do..
The mere potential for excessive improper influence arising from the structure of their relationships and roles is what creates the deemed conflict.
As the owners of a company making substantial profit like Mullvad, you always had the potential capability to financially influence political outcomes on a scale which most your customers cannot, in ways that may seriously harm some of your customers and to be potentially against the stated mission of your company.
I think the relationship between running a company with an openly advertised public mission, or even an implied mission in the minds of customers, while in another role (wealthy private citizen) being able to make a substantial material action against the same mission, should be recognised as inherently a conflict of interest. But obviously it's one we can't avoid, as long as we allow people to get rich from a mission-driven company.
What we can do, is recognise that if someone actually takes a large material action against the company's mission, then they have gone a step further and demonstrated the conflict of interest.
We generally favour free speech, including political donations. But when the money for very large political financing comes mostly from customers who, by virtue of the advertising and marketing of the company's mission, are led to believe they are supporting the company's mission?
In my view, at that point the customers are being tricked into paying for something while their money is paying for something else which opposes the thing they thought they were funding.
At the least, it should be dealt with in a similar way that conflicts of interest are dealt with when, for example, directing multiple companies: By making sure everyone knows, so other people are able to consent or not on the major conflict issues those other people might have a view on. The analogy for customers is their consent shown by their informed decision to become or remain customers.
In Mullvad's situation, that would mean Mullvad should explain to customers, embedded clearly within it's public marketing of the company missions and values, that one of its current major owners receiving customer funds by way of profit, is the main financier of a political party which sponsors remigration in Sweden. Because that is clearly a thing some customers care about when evaluating whether to pay for Mullvad's services from now on. You know that, I know that, so there's no legitimate excuse for not letting customers who would care know.
Then, as you said, customers will be free to choose.
> What we can do, is recognise that if someone actually takes a large material action against the company's mission, then they have gone a step further and demonstrated the conflict of interest.
As far as I understand Daniel doesn't believe his donation materially harms Mullvad's mission. I am undecided and need more information. I highly doubt he would donate if he believed it would be antithetical to Mullvad's mission, given that the company is founded on our shared values around privacy. I'll ask him.
I take my choice of VPN very seriously, and have used Mullvad for a long time. But now I cannot help but wonder whether the principles the two of you founded Mullvad on, to quote you from above: "because of our political convictions about free speech, free press, privacy, mass surveillance and censorship" are more important to Daniel than the views of his party.
He clearly is willing to spend large sums on the party's views, and if he can use his influence and access in Mullvad to achieve his party's stated goals, will he?
It is asking a lot to trust someone who espouses what he does to maintain Mullvad's founding values, and not to exploit Mullvad in pursuit of ideas he values at a very high monetary level.
I have zero confidence someone supporting what he does and thinks the way he does will protect my traffic, and I sadly cannot use or recommend Mullvad any longer.
> if he can use his influence and access in Mullvad to achieve his party's stated goals, will he?
Not a chance. He is probably the most principled individual I know. Consider our consistent refusal to use Mullvad's platform to promote anything but messaging around free speech, free press, mass surveillance, censorship and privacy. Or our consistent refusal to sell to the horde of venture capitalists, private equity and competitors who have approached us through the years. We're doing this for a small set of political issues, on which we share values.
> It is asking a lot to trust someone who espouses what he does to maintain Mullvad's founding values, and not to exploit Mullvad in pursuit of ideas he values at a very high monetary level.
I'm biased, and have more information than you, but I disagree. We have a 17 year track record.
> I have zero confidence someone supporting what he does and thinks the way he does will protect my traffic, and I sadly cannot use or recommend Mullvad any longer.
After thinking about it, my advice is to start a new company with the rest of Mullvad folks who don't support this:
Markus Allard has voiced support for the idea of large scale remigration on multiple occasions. On one occasion, in a debate with a Liberal member of parliament, he asked why the Liberal party "does not wish to deport 100 000 social welfare-Somalis?"[19] In the same debate Allard also claimed that "Sweden belongs to the Swedes. We have to make sure that we take care of our own damn people and we must deport these damn parasites who sit and live at our expense."[20] Regarding deporting those born in Sweden, Allard said in a podcast that "They will also be forced to leave, even if they are born in Sweden, because they have no natural connection to Sweden. They are not Swedish."
I will be happy to continue giving you my money then. Keep in mind the situation also sucks for all of us who have been recommending Mullvad for year, only for our money to go towards that kind of hatred. It is a betrayal. Now I have to start advising against it and explaining the money goes to neo nazis.
- The OS Dev wiki - Open Source Firmware Conference — TKey (shameless plug) - Tiny Tapeout - wafer.space
In rough hierarchical order from software to metal.