11 ms·
Your users will do what you make easy
- oxplot 5y agoOn a related topic, I found the Badass users book to be very insightful and practical: https://www.amazon.com/Badass-Making-Awesome-Kathy-Sierra/dp/1491919019 https://www.amazon.com/Badass-Making-Awesome-Kathy-Sierra/dp...
- flohofwoe 5y ago> ObjC was intended to be used in a different way though. ObjC OO is C with an OO layer for interop. You're supposed to write 95+% pure C. Hmm, it seems then that the programmers at NeXTStep and Apple didn't understand ObjC either, because the highlevel macOS/iOS APIs almost never use C structs for grouping simple data items but instead expensive ObjC objects where even the most simple setter/getter operation involves an objc_msgSend call under the hood.
- blondin 5y agoexcellent take on why programmers prefer one way of doing things over the other. i am adding it to my ever growing list of possible explanations. another common one is: that's what we have been taught in school. python has mostly replaced java in schools now but java used to be the introductory language of choice. one can even say that it was like a feedback loop, i.e., the industry dictating what students should learn...
- Supermancho 5y agoDevelopers will do things they like more often than things they do not like. Hubris and laziness is the hallmark of developers, so the easy path is the most often used path, which becomes familiar, which then leads to a choice between familiarity vs FUD. You get a few mavericks, but unless they can prove a productivity change by some metric or miracle, they never make much headway.
- imoverclocked 5y ago> The user will look at the programming language and think that what is the easiest thing to do is the best thing to do Hard disagree that this is what we should cater to. Programmers should also know the ecosystem they are working in. Just because you learned python with really long chains of method calls, doesn’t mean you should use the same style in Java… though it’s “easy” because that’s what you are used to doing.
- dragonwriter 5y ago> Just because you learned python with really long chains of method calls, Long chains of method calls are no more idiomatic in Python than Java to start with (Ruby tends toward fluent style, but Python doesn't.)
- lmm 5y agoIf you know a way to attract only good programmers to your ecosystem, great. Most of us have to design systems to handle the way the average programmer will use them. It's easier to build a language that nudges mediocre programmers in the right direction than to make those people spend more time and effort learning the "right thing".
- bobthepanda 5y agoAlso enough good programmers. You could have the most perfect programming language in the world, but if not enough people know it, it's not going to get deployed and get into the world. JS is not around because it's some paragon of programming language, it is just smashing everything else frontend wise in terms of developer numbers.
- phist_mcgee 5y ago"There are only two kinds of languages: the ones people complain about and the ones nobody uses" Bjarne Stroustrup
- thrower123 5y agoI have seen a weird emphasis lately in the dotnet world of trying to mimic the semantics of node or python by sweeping complexity under the rug with syntactic sugar, in the name of making the platform more minimal and welcoming to developers coming from those ecosystems. I'm not much of a fan, because you still have to deal with how asp.net works once you build anything serious, and now that isn't something the quickstart tutorials expose you to.
- 5y ago
- kennu 5y agoI always get frustrated when I see Python code written by Java programmers. It's full of unnecessary classes and complicated abstractions, and doesn't make use of Pythonic features that might keep the overall design much more simple. Good programmers know the philosophy of how each language is supposed to be used.
- Spivak 5y agoWhich in basically every language means “imitate the standard library” or “imitate the framework you’re running.” Your code is gonna be full of standard library and framework code, your code might as well blend in and be roughly intuitive to people who already know them.
- kennu 5y agoKind of yes, but I wouldn't say so about all of the Python's standard libraries. Some of the old 2.x ones were pretty weird. Same thing with e.g. PHP, standard library was quite a mess of different styles and philosophies.
- emodendroket 5y agoOh, I'd say that matches most PHP projects pretty well.
- throwaway2077 5y agoI feel your pain, brother. with the encroachment of frameworks and TS into the frontend, things that could be done with 50 lines of straightforward code become 10 files with a build step.
- krater23 5y agoI know exactly what you mean, but I hate this on programs in Java and C++ too.
- the_arun 5y agoI wonder - is programming language agnostic? Suppose if I learn a particular language - L1, my programming style & thinking is biased by the convenience of the language L1. Now, if I start programming in language L2, obviously for next few months (or years) - I continue to think in L1 & program in L2. It takes time to unlearn L1 & learn L2. Because we are humans. Do we have a bug in our expectations?
- fortysixdegrees 5y agoI find Ruby gives me multiple patterns to solve problems in, each of which feel easy. Even when it becomes evident doing it another way would have been better, usually it is still readable and consise, and quick to develop. My biggest disappointment in this profession is that ruby isn't used much more outside of rails. My team use it for everything except low level driver stuff, and it feels like we have this huge unfair advantage over our competitors.
- smt88 5y agoWhat languages do you think your competitors are using that are slowing them down?
- MonaroVXR 5y agoWhat kind of advantages?
- Gigachad 5y agoAlthough rails alone is enough to carry ruby. I think there is likely just not enough reason to use ruby over python in most non web use cases.
- OJFord 5y agoIs there particular reason to use it over Python even in web use cases? I'd say it's pretty arbitrary, choose what you know, or on the basis of the main library or two you'll need to use.
- herbst 5y agoI've worked in a Ruby/Rails team within a mostly Django company. Sure it's not fair to compare mostly Django to mostly Rails. However our team was tasked most things that had a higher complexity but should be done rather fast. I think Django slightly limited their flexibility for business logik that doesn't follow their standard pattern. This is all anectotal however. The reason I prefer ruby is simply because I like it more.
- 5y ago
- lmm 5y agoSeems to be coming at the same idea as https://www.haskellforall.com/2016/04/worst-practices-should-be-hard.html https://www.haskellforall.com/2016/04/worst-practices-should... .
- kenferry 5y agoThis post is somewhat ahistorical as far as the objective-c content is concerned.. perhaps Brad Cox had the author’s conception of how one should write ObjC, but what he describes was definitely not how Apple thought about or encouraged folks to program far far before the iPhone gold rush. Objective-C’s clean interop with C is a major selling point, but dropping down to C has long been a technique to be employed only in the targeted areas where it’s important. (Source: joined the Cocoa team in 2005.)
- nightowl_games 5y agoYeah there's plenty of criticisms for ObjC, but this post kinda makes no sense to me. No one wrote ObjC like that and to make a coherent argument as to why would require a historical non fiction book. I'm not sure who the target demographic for this post is, and it's Java section makes sense, but the ObjC section doesn't seem focused. It kinda turned into a "OO developers are stupid" post. I'm a game dev (primarily iPhone/ObjC!) - we started that shit and I can't get on board here.
- omnicognate 5y agoI don't think the Java section makes sense either. I'm no historian, but I don't think it was ease of serialisation that led to huge amounts of config in Java. I suspect that was more to do with its status as an "enterprise" language. Having encountered a similar proliferation of config in "enterprise" C++ (where it's usually not implemented in terms of serialisation) it was mostly driven by a need to modify the behaviour of systems in production without having to go through software release processes that were often cumbersome and beaurocratic.
- pjmlp 5y agoQuite right, before Java, enterprise was full with CORBA, DCOM, VB/Delphi, Smalltalk. Also many are unaware that Java EE was born as a Objective-C framework for OpenSTEP, Distributed Objects Everywhere, which was then ported to Java. https://en.wikipedia.org/wiki/Distributed_Objects_Everywhere https://en.wikipedia.org/wiki/Distributed_Objects_Everywhere Which was anyway mostly inspired by Objective-C way, not C++. https://cs.gmu.edu/~sean/stuff/java-objc.html https://cs.gmu.edu/~sean/stuff/java-objc.html
- deleted 5y ago[deleted]
- hypertele-Xii 5y ago> Your users will do what you make easy This is why game designers must remove all repetitive, boring, yet effective strategies in order to make good games. If there's something the player can do to gain advantage, no matter how boring or tedious it is, they will do it and they will ruin their fun and they will assign all blame for it on you, the designer.
- BuyMyBitcoins 5y agoI understand what you are getting at and I think that applies to the majority of games. That being said, how do you approach games like RuneScape where the grind is part of the appeal?
- Jare 5y agoIt's not about removing anything repetitive - it's about trying to find a balance that works best for the player and for you as the developer/producer. MMOs and games in general have you experience content in roughly 5 different ways: authored (expensive), procedural (complex and generic), emergent (problems explode with size), repeated (the grind), or user generated. Each game, and each system and region inside a game, is a balance between those.
- moffkalast 5y agoThe grind is absolutely not the appeal, but the other cool stuff outweighs it.
- Jensson 5y agoIn RuneScape social is the appeal, and you got things to click and numbers go up while you chat with people.
- indianboy42 5y agoExactly, I played RuneScape a bunch in highschool and would spend some weekends just grinding. Sounds boring af, but the fun thing was talking with my friends, or with complete strangers. MMO may be able to use social interaction to offset the problems of grinding, although it's probably not for free. Some incentivization for interacting with others, and safety features to feel comfortable to reach out, are needed.
- diebeforei485 5y agoI think Apple makes it too easy/fun to force-close apps on iOS by flicking them upwards from the app switching screen.
- adrianN 5y agoThere is a different way of closing applications on iOS?
- diebeforei485 5y agoThe different way (the recommended way) is to not close them.
- agumonkey 5y agoIsn't that a universal law ? We live in valleys, we go where taxes are low, we cut corners in parks. Balancing structure and ease is an interesting art.