1. 19

    If the current trends in web development is adding as much abstractions as possible and making the simplest possible website bigger and bigger. Yes, Blazor is the obvious evolution, a really big step in that direction.

    1. 4

      In some cases sure. New patterns are always exploited and used incorrectly. And there are folks who will use that same pattern to make applications less complex. Depending on the use case, Blazor could provide a great opportunity for skilled C# developers to build sane front end applications without downloading any plugins. Inversely they can build slick thin client scenarios to make a server application more accessible.

      It’s all in how you use it. It’s not magical unicorn dust, but it’s a fantastic concept.

      1. 14

        IMHO, the downsides are way bigger than the benefits.

        In case of C# developers, the advantages aren’t as big when you realize Typescript exists.

        The application size for a WebAssembly build is insane.

        The lag with the “Blazor server” option is plain terrible.

        The complexity introduced by both solutions is over the roof.

        I’ve worked with Microsoft technologies exclusively for nearly 4 years. Can’t think a single scenario in which Blazor would make any sense.

        1. 7

          you realize Typescript exists

          and is strongly supported by Microsoft, having been worked on prior to its public release by the lead architect of C# too.

          1. 3
            • App size will drop, and steadily.
            • Typscript is not quite as powerful as C#, we need that power these days.
            • Complexity => all being neatly abstracted, that’s the point.

            It was released over the last few months, give it a chance to mature.

            1. 4

              App size will drop, and steadily.

              I would love to see how, taking in count that C# needs a runtime (Mono for example). You can do work to shrink a runtime, but enough to make it acceptable for a internet connection that isn’t perfect? Like, 3G mobile tethering or somewhere outside the first world.

              Typscript is not quite as powerful as C#, we need that power these days.

              Can agree that C# is more powerful, but Typescript is enough, and produces minifiable javascript code that doesn’t depend on an extra runtime, other than the browser’s build-in javascript interpreter. I would love to see some evolution on the Haxe compilation on JS.

              Complexity => all being neatly abstracted, that’s the point.

              By experience, I know how are the Microsoft’s abstractions: Complex and rigid. Which means leaky and you will not be able to do anything about it.

              1. 3

                in what way is c# more powerful than ts? Pattern matching? I can’t think of anything else, I’d argue in more ways typescript is more powerful in the type department with proper unions + intersection types, mapped types, conditional types. See https://www.typescriptlang.org/docs/handbook/advanced-types.html

      1. 2

        C# / F# et. al / NetCore were the only good things to come out of MS (in my mind)

        1. 5

          It depends where we draw the line a guess. MSR is where F# originated, as well as things like Z3, Orleans,and others. On the commercial side, we have the invention of XHR, performance centered 3d graphics (DirectX may be proprietary but it was a big change from old school OpenGL which was a mess of vendor extensions),

          The real kicker is that Microsoft was early on a lot of fronts and overconfident because of it: smart phones, tablets, pen computing, integrated web browsing experiences (which have all but become the user shell at this point which ironically they were sued for even though some operating systems like chrome os are exactly this), and others I’m sure.

          Maybe some folks don’t care about one thing or another but they moved a lot of things forward in critical ways to get us where we are today. Almost all of these fronts have been improved upon by others so folks might claim that it didn’t really matter what Microsoft did, but I think many crucial turning points in history come from things Microsoft decided to change. It’s the same way we look back at Apple and deciding the smart phone wasn’t done… most folks today have Android handsets but it’d be silly to pretend that the iPhone didn’t create the momentum in rethinking things just like products before the iPhone did.

        1. 4

          I used mail-in-a-box with a 1gb linode.. worked well. FF, DDG for search. Started all a year or so ago, honestly don’t miss any of G’s services. Had written this back in ’13 -> https://medium.com/@hitchhiker2010/weve-given-google-far-too-much-power-32ba2b38c219

          1. 2

            I used to self-host my mail server on Linode and would occasionally hear that my emails were being marked as spam (even after setting up SPF, DKIM, etc.). Have you had this issue? Maybe it was just bad luck w/ the IP I was assigned.

            1. 1

              I used to self-host, but I had problems with email not getting through. I switched to pobox.com. They have a decent webmail service, decent spam filtering, and their business model does not involve harvesting personal information or advertising. Instead, I pay them $50 per year. They are pretty strict about keeping their IP address range “clean”, so that their addresses don’t get added to DNS blackhole spam filtering lists. So my email isn’t marked as spam. In order for a hosting service to provide you with clean IP addresses, that service needs to perform mandatory spam filtering on any email sent from their addresses.

              1. 1

                I similarly stopped self-hosting and now I use FastMail. I’d love to move back to self-hosting though if I can find a good hosting provider.

              2. 1

                I self host using mailinabox with a super cheap vps on vultr. I had about 2 emails get marked as spam in the beginning but never had any issues after.

            1. 0

              Filecoin is probably not a 257M Ponzi Scheme - it actually might be one of the few projects with significant real-world use (and therefore real value down the line)

              1. 3

                Yes, so basically you can enjoy all the benefits (almost, and not really) with a single H-DPI monitor.. ok then, enjoy that.

                1. 1

                  Wow, that was a step up from the usual C# articles… Very cool.

                  1. 46

                    Stop making #1 priorities, should be your #1 priority for 2015. (tired of stupid headlines proclaiming one-size fits all solutions every 6 months for the last 10 years since the masses got involved in programming.)

                    1. 4


                      The “replace object oriented programming with functional programming” lead-in doesn’t do functional programming favors.

                      Object oriented programming was originally in “one size fits all, best thing since sliced bread, does great stuff for free” terms and that was a disaster. Indeed, that kind of sell harmed OO more than anything else.

                      OO has the virtue of being: 1. A way to package/encapsulate just about anything and so make something that begin a disaster into a slightly less disastrous thing in a practical time frame. Functional programming isn’t competing here and shouldn’t compete here. 2. A way to program powerfully by combining objects, programming with duck-types or generics or whatever. Functional programming does compete here but neither “wins” because after a point, power, meaning effects-per-line or flexibility-per-line only matters for small-ish programs. Once one gets to a certain program, the main limit to power is the programmer’s ability to encompass it and that’s inherently limited.

                      The virtues of Functional Programming (which I’m less versed in so feel free to correct). 1. If you fully subscribe to the approach, you get a variety of hard safety guarantees which also allow you to manipulate the program on various different levels. Especially, these open the door to safety guarantees in multi-threaded and concurrent programs whereas imperative programs tend to be subject to unpredictable errors, a drag given that such programs tend to be “high performance” where an unpredictable crash is a bad thing (see Twitter going from Ruby to Scala). 2. Power, see above. 3. You jump on the next-big-thing bandwagon, expand your mind, learn new and different tricks.

                      So there you are have it, apples versus oranges as you’d expect. Just as OO was ill-served when sold as the answer to everything in the 90s, my hunch is that functional programming will be ill-served if it becomes accepted as the answer to everything, though that seems less likely given that it seems inherently difficult to learn and use.

                      1. 5

                        you get a variety of hard safety guarantees which also allow you to manipulate the program on various different levels

                        You get more than that. I’m going to scope this to Haskell because I will not defend other languages considered to be functional and because I’ve been teaching it and writing about it for awhile now.

                        OO has the virtue of being: 1. A way to package/encapsulate just about anything and so make something that begin a disaster into a slightly less disastrous thing in a practical time frame.

                        Abstract datatypes do the same thing. You see them a lot in OCaml and Haskell. I’d say the deeper point here is about final encodings but let me hand-wave that for now.

                        I benefit from FP (initial encodings - algebraic datatypes, pattern matching) and OO-style (final encodings - abstract datatypes/typeclasses) in Haskell in equal measures. The deeper point, IMO, is that I have a solid and principled foundation to build upon and a wealth of options to work with. Building on wet sand sucks.

                        Also, good defaults. I do think the “defaults” in a language like Haskell (pure, immutable, etc.) are the right way to go. I do think FP-style initial encodings are a good ‘first-pass’ default for when you’re still mapping out and understanding the domain. I don’t abstract out to something that hides information about the concrete instance until I understand the…abstraction (or pattern). Perhaps this works fine because Haskell is pure and the default is immutability, but pure code + immutability alone wasn’t enough to make Clojure scale well for me, so it’s not just that.

                        IMHO, thinking final encodings (OO) will save you from pervasive effects (impurity, mutability, etc.) is like thinking breathing through a straw on Venus will keep you alive.

                        You need a spacesuit, not a straw.

                        The frontier on this is continually being pushed out - you see Haskellers asking the same questions about totality and turing completeness that people ask of Haskellers about purity and “but how do you talk to the outside world?” As the author of a library that does nothing but talk to an external service (search engine) and still has ~94% of the code emit no IO, let me tell you, it works fine.

                        But sometimes, I use a mutable datatype. And it’s totally fine. shrug I would note, however, that I am not allowed to confuse immutable and mutable variations of the same type in Haskell, but I still allowed to (safely) write generic operations over both.

                        You can’t think this is a one-size fits all approach unless you’re talking about languages with a narrower set of options than something like Haskell. Unless you don’t think final encodings capture the value of OO, but then the onus would be on you to explain what OO does that abstract datatypes, typeclasses, and modules cannot. I don’t think that’ll be fruitful unless you’re formulating new foundations for programming languages which means you now must justify a totally new PL theory. That seems a rather more daunting task than, “this tool relying on 79 year old well-established theory of computation happens to be well made, have nice libraries, and lets me be more productive than the alternatives”.

                        I use Haskell in my 9-5 for a variety of reasons. Only one of them has the word “lambda” in them.

                        TL;DR - No hairshirt. Future’s so bright, I gotta wear shades.

                    1. 3

                      This got [flagkilled] on HN :D

                      1. 8

                        To be fair, the article doesn’t bring anything new over all the “go sucks” articles out there, except perhaps the sarcastic tone.

                        1. 1

                          Unless you’re writing Go for a living, it will make you smile. That’s original enough to warrant sharing the blog post.

                      1. 19

                        Sadly this has been a recurring theme with Google for the last few years. I don’t expect it to get any better from here on.

                        1. 6

                          You either die a hero or live long enough to see yourself become the bad guy. And if you live long enough after you’ve become the bad guy, you might see yourself become the good guy again. But no one can remain pure forever.

                        1. 1

                          Sounds lovely, how many years will we need to wait before something like this happens :(

                          1. 1

                            That was just awesome to read.. makes me want to go dig a ditch to the backbone :) nice.

                            1. 9

                              I think that’s ‘part’ of it. It also depends on the type / style of moderation. We run a huge community (4 million visitors a month) - we’ve had to ban some of our top posters over the years - just for being smarmy bastards.

                              You can be big, and have a friendly place - but you’re going to have to do some ‘shitty’ things to keep it that way.

                              1. 6

                                I love talking about community management. Can you tell us more about the community you run and how you approach community management?

                              1. 3

                                Very sorry to see linkbait hitting lobsters :( Poorly written article, cult of ‘this that or the other’, general crap.

                                1. 2

                                  The ‘mania’ is a problem, many guess a 4th(?) crash is coming. It is a risky project, perhaps the riskiest. But it’s alive because many of us ‘nerdy’ types believe crypto-currencies will be the currencies of the future; whether that’s BTC or not remains to be seen.

                                  To some degree, others believe the current fiat currencies will eventually collapse. Hence a crypto may well be the last-man-standing. It would be hard to argue its legitimacy then.

                                  TL; Valid points, though explaining everything away as ‘mania’ might be shortsighted.

                                  1. 1

                                    i’m watching it since it was at 30 cents and made a solid amount of money with my bitcoins. none the less i think its doomed. the argument of scarcity that the whole scheme is build upon is just not valid: the cost of creating a currency with the exact same properties is close to zero. on the long run there will be no trust in such a system. the real cryptocurrencies that everybody is waiting for will be smaller marketplaces and “money” will be backed by goods.