I wish the Soviets had focused more on developing an independent computer industry and their own distinct flavors of programming languages.
Imagine the thrill of studying languages built to run on completely separate hardware architectures, featuring entirely novel paradigms and structures.
This would be the closest thing to experience reverse-engineering a computer from an alien spaceship.
In the West, while the military industry initially pushed computer development, private companies quickly adapted those technologies for the consumer market. Over time, the Western consumer market became vastly larger than the military one.
In the USSR, this cross-pollination wasn't possible because anything that even touched the military was immediately classified as a state secret. This obsession with secrecy even affected civilian infrastructure like nuclear power plants. Plant operators weren't fully trained on how the systems worked under extreme conditions, and they were kept completely in the dark about inherent design flaws—because in the Soviet system, everything was by definition perfect and superior to the West.
Furthermore, because the consumer market was strictly controlled by the government and the party, the Soviet economy lacked any organic market signals regarding what people actually wanted or needed. Apparatchiks had to look elsewhere for data, so they resorted to copying Western solutions—sometimes just copying the basic concept (like a radio where users could choose their own stations), and sometimes cloning the entire machine.
While Soviet scientists had some highly innovative and interesting ideas in the beginning, central planners eventually decided it was faster and easier to copy a Western solution that was already 5, 10, or 15 years ahead in mass production.
USSR just wasn't rich enough to afford experimentation and innovation. Resources (including human brain power) were quite limited. So they had to copy proven solutions. Simple as that.
It's easy to judge them in the retrospective. But they had to make decisions, using the information the had at the moment, weighing risks as they saw them at that moment.
In an alternate universe where Soviets won the Cold War, we would be writing in Russian on новостихакеров.рф and arguing which vacuum tubes make the best computers.
КНЦ = end (конец in russian is end). However, in bulgarian in means 'thread' (as in sewing thread) and it has lots its meaning of end, aside from 'from needle to thread' expression where it means from the tip of the needle to the end of the thread.
Also 'ALL' (и все = it's over/that's all), which should be 'end' as in begin/end in pascal.
Since I know russian well, here's a proper translation for y'all
FUNC FACT (N);
NAMES: P; (* variable names *)
1 -> P;
FOR I FROM 1 TO N ::
P * I -> P
DONE (* endif *)
RET: P (* return value *)
END; (* end of function *)
FOR N FROM 0 TO 6 ::
? "FACT(", N, ") = ", FACT(Н) (* print *)
DONE;
The acronyms are because it was originally russified by substituting character codes in Pascal binary. Thus VAR became ИМЯ, END became КНЦ and so on. Same reason JOB hilariously became ЗАД in the liberated OS/360.
Everyone's happy, head of development celebrates his 3rd degree Lenin's premium.
Is it really Pascal though? There's a lot of academic/educational languages with the similar syntax, and I think РАПИРА had additional data structures. (I've read a book on it and tinkered with it as a kid, but it was in the early 90's and I barely remember any of it)
There is also an independent open-source interpreter for 1C language (which is to this day reported to be extensively used in Russian enterprise) implemented in C#. I haven't tried it myself, but just though that it's also worth mentioning here as the project seems to be actively worked on:
https://github.com/evilbeaver/onescript
Imagine the thrill of studying languages built to run on completely separate hardware architectures, featuring entirely novel paradigms and structures.
This would be the closest thing to experience reverse-engineering a computer from an alien spaceship.
In the West, while the military industry initially pushed computer development, private companies quickly adapted those technologies for the consumer market. Over time, the Western consumer market became vastly larger than the military one.
In the USSR, this cross-pollination wasn't possible because anything that even touched the military was immediately classified as a state secret. This obsession with secrecy even affected civilian infrastructure like nuclear power plants. Plant operators weren't fully trained on how the systems worked under extreme conditions, and they were kept completely in the dark about inherent design flaws—because in the Soviet system, everything was by definition perfect and superior to the West.
Furthermore, because the consumer market was strictly controlled by the government and the party, the Soviet economy lacked any organic market signals regarding what people actually wanted or needed. Apparatchiks had to look elsewhere for data, so they resorted to copying Western solutions—sometimes just copying the basic concept (like a radio where users could choose their own stations), and sometimes cloning the entire machine.
While Soviet scientists had some highly innovative and interesting ideas in the beginning, central planners eventually decided it was faster and easier to copy a Western solution that was already 5, 10, or 15 years ahead in mass production.
USSR just wasn't rich enough to afford experimentation and innovation. Resources (including human brain power) were quite limited. So they had to copy proven solutions. Simple as that.
It's easy to judge them in the retrospective. But they had to make decisions, using the information the had at the moment, weighing risks as they saw them at that moment.
This is a pretty cool historical artifact.
Does anyone use "native language" programming languages in education or day to day?
UPD: 1C can be used in both Russian and English. And I'm pretty sure it can be used outside of 1C:Enterprise.
It also has BSL Language Server and IDEA\VSCode extensions.
https://en.wikipedia.org/wiki/Non-English-based_programming_...
1. "ИМЕНА" is plural, so instead of "NAME:" it's a bit more appropriate to use "NAMES:". Probably should be "VARIABLES" or "VARS" in modern context.
2. You've got few typos mixing "R" and "P". Should be "R" everywhere.
3. Instead of "ALL" you should use "DONE".
4. Instead of "KNC" you should use "END".
So it would look like this:
replace cyrillic w/ russian and it'd be ok.
КНЦ = end (конец in russian is end). However, in bulgarian in means 'thread' (as in sewing thread) and it has lots its meaning of end, aside from 'from needle to thread' expression where it means from the tip of the needle to the end of the thread.
Also 'ALL' (и все = it's over/that's all), which should be 'end' as in begin/end in pascal.
The main point still stands - it's Pascal.
With that being said, I do think it's harder to make a clear programming language based on is a Slavic language, due to all the case and gender forms.
You can use "конец" for "end" in Bulgarian too, even though it's antiquated.
it's in the original post
Also, «ВСЕ» feels like «ВСЁ» in this context, I’d translate that as “that’s all”.
Everyone's happy, head of development celebrates his 3rd degree Lenin's premium.
> Don't post generated comments or AI-edited comments. HN is for conversation between humans.
> 1982