6 ms·
> This is how I solved the third problem, by the way: [insert unreadable scribbles of a madman] when will array enthusiasts understand that having first letter
by NooneAtAll3 3y ago
> This is how I solved the third problem, by the way: [insert unreadable scribbles of a madman]
when will array enthusiasts understand that having first letter A does not mean the language should be aimed at Aliens?
get over your "code golf" tendencies and start thinking about *readability* - give us long names, give us brackets, give us ASCII and stop pulling everything into a single line in examples - _THEN_ you'll have your first tiny chance of being heard and taken seriously
aim design at common people, not gurus
- haolez 3y agoWhy? Just use TypeScript at that point. The whole point of those languages is the notation as a tool for better thought.
- dsabanin 3y agoNotation doesn't have to be obscure symbols, the power of the array languages goes well beyond their syntax.
- TeMPOraL 3y agoYes, and it gets multiplied by the power of the notation, once you get familiar with it.
- xelxebar 3y agoHave you ever read Euclid's The Elements? It's all prose and relatively obtuse. Compare that against the modern notation equivalent and you'll see how empowering the algebraic formulation is. The semantics are the same, but the presentation absolutely makes a difference. APL is not 100% about the symbols, but a huge part of being a tool of thought comes from the suggestivity that symbolic notation offers.
- HelloNurse 3y agoOverloading operators by position (left, right, infix) for related meanings and effectively modifying operators by concatenating them with other operators in sufficiently orthogonal ways are major and unusual achievements of APL, and they run much deeper than syntax.
- NooneAtAll3 3y agomany people would choose TypeScript over PHP there is demand for readable replacement of regex write-only languages stop giving "better thought" right after you stop writing that part of the code
- NooneAtAll3 3y agoI want to apologize to both PHP and Perl communities. It's possible that I might've mixed up the two of you, because I don't remember which one managed to compile&run 90% of text-recognition app results of paint stains on the walls...
- kiicia 3y agoWhy use TS when you can use JS in any browser console
- haolez 3y agoI'm presuming that the parent is more of a TypeScript person ;)
- llmzero 3y agoI agree that in a team you should not use code golf for others to review your work. But for your own explorations or because your team can read easily your code golf then use it when is appropriate.
- rokkitmensch 3y agoGood notation is worth an extra brain, or how does the bastardized Kay quote go...
- ivanjermakov 3y agoThis is what I love in Uiua[1]. That operators can be written as english words instead of unicode symbols. Makes it quite similar looking to functuinal point free code. [1]: https://www.uiua.org/ https://www.uiua.org/
- roenxi 3y agoIs that some sort of joke language? The use of colour is fascinating in the same way as seeing a car accident.
- NooneAtAll3 3y agoeven if Uiua has english words - it does not show them on the frontpage (instead presenting virtual keyboard of its own, differently shaped monstrosities), so there's a lot of marketing left to do
- t-3 3y agoThe glyphs are not a barrier to use or learning. Learning them is no more difficult than learning the keywords and syntax of any other language. The real difficulty lies in thinking in terms of arrays and array operations rather than conditionals and loops.
- int_19h 3y agoErgonomics matter regardless of the paradigm.
- nextaccountic 3y ago> The real difficulty lies in thinking in terms of arrays and array operations rather than conditionals and loops. This is just a restricted form of functional and high order programming. It's slightly unusual but many people feel comfortable with it.
- bryanrasmussen 3y ago>The glyphs are not a barrier to use or learning. perhaps not to you but perhaps they are for a large number of people who are used to seeing words they recognize, surely being able to read a simple program before you have learned and guess what it means will be a great comfort to people and make them feel that yes, they can learn this. A bunch of incomprehensible glyphs might interest someone like a puzzle solving challenge, but not everyone will want to solve a puzzle in order to first start to learn a language.
- aleph_minus_one 3y ago> perhaps not to you but perhaps they are for a large number of people who are used to seeing words they recognize, surely being able to read a simple program before you have learned and guess what it means will be a great comfort to people and make them feel that yes, they can learn this. This argument was already used in the past to justify the very verbose syntax of COBOL.
- blacklion 3y ago
- 29athrowaway 3y agoAnd people with special APL keyboards https://www.pckeyboard.com/page/product/00UA41P4A https://www.pckeyboard.com/page/product/00UA41P4A
- MonkeyClub 3y ago> aim design at common people, not gurus It's not necessary to make everything toddler-safe; we already have Python.
- genter 3y agoThat's orthogonal. C is very readable, yet you can easily shoot your leg off.
- lelanthran 3y ago> That's orthogonal. C is very readable, yet you can easily shoot your leg off. Or, you could use C++ which, on one hand is hard and obtuse to read, and on the other hand, has 10x as many footguns as C.
- xmcqdpt2 3y agoThat's because you aren't using Modern C++. You can write Modern C++ safely, you just need to use the right set of features and not the other ones. Here is a short read on this topic, https://www.amazon.ca/Embracing-Modern-Safely-John-Lakos/dp/0137380356 https://www.amazon.ca/Embracing-Modern-Safely-John-Lakos/dp/... It's only 2661 pages. Yes, that is almost 3x longer than The Rust Programming Language, 2nd Ed.
- emblaegh 3y agoEverything is unreadable before you learn it.
- ozim 3y agoProblem is how much time one does need before it is readable. Had a guy that tried to push LaTeX as documentation writing tooling for the whole company. Sales guys went with Confluence. They were more concerned with actually closing million dollar contracts than learning fancy typesetting system.
- 1vuio0pswjnm7 3y agoPersonally, I do not find that long names, brackets and general verbosity helps _me_ with "readability". The less concise it looks the less likely I am to read it. And if there is too much to read, I will definitely not read it. Just because someone has entertained themselves by writing lots of verbose code does not mean I want to read it. Skimming it and searching through numerous directories of source code files is not the same thing as actually reading each file from beginning to end. As it happens, I find terse languages, and "code golf", as more approachable and thus readbale. It is lower volume, more concise and compact. Generally, I can read all of it. I use an ASCII-based array language that uses brackets: https://en.wikipedia.org/wiki/K_(programming_language) https://en.wikipedia.org/wiki/K_(programming_language) I am not sure why I prefer writing less code as opposed to writing more code. Maybe I just dislike typing. In any case, I am thankful these languages exist. For both reading and writing. To insinuate that no one takes array languages seriously would of course be wrong, as one can see from the above Wikipedia page. The question I have is why anyone who prefers popular verbose languages would care about the discussion of unpopular array languages on HN. Why even bother to comment and complain. If array languages are incomprehensible and unpopular, then why pay any attention to them. Appeals for verbosity over terseness do not seem to be working for the vast majority of Javascript I see in webpages from the larger so-called "tech" companies running the most popular websites. Array languages are very easy to avoid. Imagine trying to avoid Python. Not easy (speaking from experience). Telling array language authors to make their languages more verbose is like telling Bob Dylan to play what people want to hear and only then will he have a "tiny chance of being heard and taken seriously". (Also wondering if commenter meant braces not brackets.)
- tomcam 3y ago> Personally, I do not find that long names, brackets and general verbosity helps _me_ with "readability". Thank you, 1vuio0pswjnm7
- NooneAtAll3 3y ago> Personally, I do not find that long names, brackets and general verbosity helps _me_ with "readability". The less concise it looks the less likely I am to read it. And if there is too much to read, I will definitely not read it. in some sense it is a "thesaurus vs ancient egyptian" argument I can totally understand that it would be infinitely nicer to build Stargate and go fight Goa'uld or inherit knowldge of the galaxy-spanning Asgard - but it's the events of "Yes, Minister" that actually do happen in our, real, world > As it happens, I find terse languages, and "code golf", as more approachable and thus readbale. It is lower volume, more concise and compact. Generally, I can read all of it. I use an ASCII-based array language that uses brackets: https://en.wikipedia.org/wiki/K_(programming_language) https://en.wikipedia.org/wiki/K_(programming_language) "A case of MUMPS" (https://thedailywtf.com/articles/A_Case_of_the_MUMPS https://thedailywtf.com/articles/A_Case_of_the_MUMPS) is on The Daily WTF. "WTF" is exactly the default behaviour of people encountering these codegolf-ed langs > The question I have is why anyone who prefers popular verbose languages would care about the discussion of unpopular array languages on HN. Why even bother to comment and complain. you're the seller, I'm the buyer array enthusiasts advertise their product, listing advantages - we reply with "my problems with it are this, this and this. How can you fix it?". Yes I'm interested. No, I don't agree that my concerns are empty. > (Also wondering if commenter meant braces not brackets.) technically, I meant parenthesis. But nowadays, and especially in programming world, all 3 are synonyms and you just add [curly/round/square] in front brackets are just easiest of the 3 for me to recall
- arijun 3y agoAn obvious compromise is to have a dual representation, one terse and one that’s spelled out. You could then toggle between them when seeing unfamiliar symbols. The fact that nobody selling me on these arcane runes talks about something like that tells me it’s more about code golf for them.
- icen 3y agoI don't want to do the same things for boolean operations, or arithmetic, or pointer (de-)referencing in C like languages. Why would I want to do so when equally familiar with a larger range of symbolic operations? Somehow the usual culprits of +-/*|^&% get a free pass on this, and are somehow less arcane than symbols like ⍋ or ⊃. There's nothing inherent about this, it's about familiarity, and once familiar, everyone always prefers the symbols over spelling it out like plus, minus, divide, multiply...
- gpderetta 3y agoFor what is worth, you can use the keywords 'and', 'or', 'xor' etc. in C an C++ like you can in python. I for one greatly prefer them.
- arijun 3y agoThe lack of familiarity was exactly my point? If you make a new language with a + symbol but spelled out the other functions, newcomers would understand it immediately. If you have whatever that Christmas tree symbol is, newcomers will be continuously looking up what they mean. You are making the language harder to learn for the sake of code golf. And if you had a toggle-able mode, you could still have your code golf.
- arijun 3y agoIt’s funny because lisp enthusiasts will say “yes, lisp is harder to learn with all the parentheses, but trust me, it’s worth it” And then list some actual benefits. Whereas APL fans will insist it’s not hard while listing no benefits besides dense code.
- 3y ago
- dspillett 3y ago> when will array enthusiasts understand that having first letter A does not mean the language should be aimed at Aliens? […] get over your "code golf" tendencies I've always assumed that people working on these languages come from a heavy maths background, so to them the sequence of symbols is more “naturally” readable. So saying “if array language people used words I'd understand better” is not unlike saying “if the Chinese would only speak English there would be less language barriers”. Not wrong, of course, but perhaps not a reasonable expectation.
- sethammons 3y agoEnglish is the langua franca of programming. If you want your solution accepted, you have to meet your audience where they are. In similar fashion, when engines were first invented and were being sold to miners, they didn't expect miners to understand the scientific terms around energy, they invented a term that could be easily understood: horsepower. Every miner could wrap their head around the work that twenty horses could do. Here, x̄ or μ may mean average, but how do you pronounce either? Most are unfamiliar. Identifiers "avg()" or "average()" are more approachable, and already in use in spreadsheets for similar reasons.
- aleph_minus_one 3y ago> English is the langua franca of programming. I am not an English native speaker, but learned programming before even starting with learning English. In my head, the English keywords used in programming languages are thus just abstract (mathematical) symbols that are incidentally also English words. As part of my work, I also work with Russian programmers, who, as long as they lived in Russia, hardly ever had to understand anything in English as part of their programming job ("Russia is so big that it is not necessary to learn English"). Just to be clear: they nevertheless attempted to learn English while living in Russia, but because of of intellectual interest, and not because it was necessary or helpful for their programming jobs. I heard rumors that a similar stance holds for China. Thus: English may be the lingua franca of programming in North America and some European countries, but clearly not worldwide.
- sethammons 3y ago> { ⊃ ⍵ ⊇⍨ ↑⍒≢¨ ⍵ /⍨ 2≥ (⊂"aeiou") (+/∊⍨)¨ ⍵ } io:read "dict.txt" > At this point, comments suggesting the code is “unreadable” are bound to be thrown around, but once you learn a handful of symbols, this is in fact significantly more readable than the kinds of formulas I see on a regular basis in Excel. To your point: what would this look like using English words as identifiers rather than unicode soup whose names I have likely never heard of? It isn't like those characters are easy to find on my keyboard.
- BeFlatXIII 3y agoThe solution is obvious: better keyboards
- maximus-decimus 3y ago> It isn't like those characters are easy to find on my keyboard. Don't let your dreams be dreams (I actually have one): https://www.pckeyboard.com/page/product/00UA41P4A https://www.pckeyboard.com/page/product/00UA41P4A