5 ms·
> But, really, I suggest using other tools. We have nicer tools now. Debatable really. Within the web development space the options are rather limited in my op
by that_guy_iain 5y ago
> But, really, I suggest using other tools. We have nicer tools now.
Debatable really. Within the web development space the options are rather limited in my opinion.
Options:
* Spring based apps - Downside JVM is a Resource hog
* Python, Ruby, etc - The web frameworks are in my opinion not as full featured. Same with CMS systems. Also requires more resources. Also have limited OO features.
* Go, Rust, etc - Really good choices for APIs but their web frameworks are also really lacking.
The tooling around PHP is really good and stable. The language itself, the downsides are very limited and the main one that remains valid is inconsistency of function parameters. The issues with bad code are generally the same ones that can be done in another langauge.
- mschuster91 5y ago> The language itself, the downsides are very limited and the main one that remains valid is inconsistency of function parameters. Usually one would have an IDE's auto completion to take care about function parameters, and in any case PHP8 has named parameters now to reduce whatever confusion (especially when optional parameters come into play) remains.
- xigoi 5y agoSure, auto-completion makes the code easier to write. But you can't make it easier to read.
- that_guy_iain 5y agoJetbrains shows you the name of the parameter while reading so that part is reasonably easy
- StreamBright 5y agoWe use Asp.NET and it is a giant surprise how good it is. We are unix ppl, Linux & MacOS so not a MS shop at all. We deploy to on-prem and AWS so no Azure.
- that_guy_iain 5y agoIt's been so long since I've done ASP that it just when .NET was coming out. I would be interested in checking it out nowadays. WHen I last used it all the cool features were heavily coupled to MS products, is that still the case?
- StreamBright 5y agoNot at all. We actually use it from F# with Falco. I am not sure which features you are interested in particular but the ones we like are the basic HTTP handling (requests, responses, etc.), a high performance HTTP server (Kestrel) and we use Falco's html engine as well. On the top of that there is a decent authentication and authorization solution.
- zidad 5y agoSame here, the latest asp.net is definitely one of the best performing options out there (maybe except rust in this list), and C# is a great general purpose language to code in (despite the legacy that's in there, like the reflection going on in the framework. unfortunately).
- cies 5y agoKotlin + IntelliJ is a neat mainstream option too. For those preferring a bit less legacy.
- dotancohen 5y agoDo you deploy to Linux images on AWS? I'm actually very interested in your dev setup. Do your devs use Linux machines? What IDE?
- StreamBright 5y agoGreat questions. I am going to write a detailed article about it because you are not the first person asking these. We have two deployment modes: - lambda - ec2 instance Depending on how you would like to target Lambda you have multiple options. On ec2 too. We use VS Code on both Linux and MacOS. The tooling is kind of meh at the moment, Ionide is not ready for prime time we run into issues frequently with it. We are considering to switching to Rider soon. https://www.jetbrains.com/help/rider/F_Sharp.html https://www.jetbrains.com/help/rider/F_Sharp.html * I do not have time to write your a detailed answer but I promise to get back with an article sometime this month.
- berkes 5y agoJava, .net, C#, typescript (not my favorite) are all commonly and often used for Web Development. They are sane languages with large ecosystems and solid frameworks for web-dev.
- that_guy_iain 5y agoThe question is not can you use something else, it's are they nicer/better tools to work with. I haven't for example seen many things that can honestly compete with WordPress. When it comes to eCommerce, not many systems can compete with Magento/Spryker/Sylius. The list goes on. PHP is a top player in web development while being one of the most hated languages for a reason. I've spent a lot of time using PHP professionally and then coding all my personal stuff in Python/Go/Scala/Kotlin/etc. I know the downsides of PHP and I know the upsides and I often prefer coding in other languages but PHP really does have it's place.
- berkes 5y ago> I haven't for example seen many things that can honestly compete with WordPress. I'm sorry? Compete on what parameters? Almost all frameworks win, hands down, in developer-friendlyness from WordPress. Many, if not most, modern CMSes can easily compete on security or performance. Many CMSes will win in user-friendlyness - for distinct use-case even more so. Many web-frameworks win easily in versatility: there's no way you can build a solid payment-service-provider in WordPress, build a Bookkeeping app, CRM, project-management, etc in WP. Yet these are fine in Java, .net, Rails, Django or even Rust. The only place where I consider WordPress king, is for standalone, reasonably simple, blogs. This is a giant niche. * standalone: not integrated into CRMs, or editorial workflow software. reasonably simple: no complex editorial and publishing workflows. blogs: anything slightly more than simple brochureware, but simpler than an avera CMSes.
- that_guy_iain 5y agoThe fact you're talking about building a payment service provider in a CMS kind of tells me this isn't a conversation worth continuing.
- powerlogic31 5y ago
- mtberatwork 5y ago> Downside JVM is a Resource hog I have to disagree. The JVM is one of the biggest pluses and might be one of the most battle-tested pieces of software out there. > The web frameworks are in my opinion not as full featured. Again, have to disagree here. Django is by far one of the most full-featured, well-documented web frameworks out there (IMO). > The tooling around PHP is really good and stable. The language itself, the downsides are very limited and the main one that remains valid is inconsistency of function parameters. The issues with bad code are generally the same ones that can be done in another langauge. I agree here and I think with PHP 8 incorporating JIT compilation, I think the future looks bright for PHP. I think the biggest foot guns these days are to be found in the JS ecosystem...but again, IMO.
- that_guy_iain 5y ago> I have to disagree. The JVM is one of the biggest pluses and might be one of the most battle-tested pieces of software out there. Your points don't seem to conflict with the fact you need more resources to run a mimimal Spring Boot application than you would a Go application, a Python applicaton, a PHP application, etc. Because the JVM by default by the nature of how it operates needs more resources. I'm not saying anything other than that.
- inoop 5y ago> Downside JVM is a Resource hog The fuck are you smoking? The JVM is one of the most mature, resource efficient, and fast language runtimes out there. See, this is why nobody can take you people seriously.
- dotancohen 5y agoIf you're conversing with someone who believes that the JVM is a resource hog, then you are likely conversing with someone with decades of experience. I would phrase my opposing viewpoint in a more respectable manner, as you might have a lot to learn from someone like that.
- inoop 5y ago> If you're conversing with someone who believes that the JVM is a resource hog, then you are likely conversing with someone with decades of experience As someone who has actually read the JVM specifications many times, has actively worked on a JVM implementation, and has a pretty good grasp on virtual machine design, I beg to differ. But hey, I'll take the bait, what makes you think the JVM is a 'resource hog'?
- dotancohen 5y agoI no longer think that the JVM is a resource hog. In fact I implied that it was an archaic mindset by suggesting that someone who thinks so has been decades in the industry. That said, many Java applications themselves are resource hogs. Even my preferred IDE, the Jetbrains suite which I love, are resource hogs. Perhaps I'm simply not configuring it properly, but arguably I wouldn't ask an end user to tune JVM parameters any more than I would ask a car buyer today to set his timing or tune his mixture.
- inoop 5y ago> Even my preferred IDE, the Jetbrains suite which I love, are resource hogs Ok, so you're saying that because a large, complex desktop application uses a lot of memory and is also written in Java that therefore the JVM is a memory hog? Well then, given how much of a memory hog Chrome is, I guess we can all shitcan C/C++ as well. Look, in any reasonable apples-to-apples comparison the JVM blows anything PHP has out of the water, including haxe, hiphop, etc. And even if you write a PHP-to-bytecode compiler (e.g. https://github.com/jphp-group/jphp https://github.com/jphp-group/jphp) then there are certain limitations to how fast and efficient any dynamically typed language can be. Look at all the shit V8 has to go through to do field lookups: https://v8.dev/blog/fast-properties https://v8.dev/blog/fast-properties And then there's so much useless request-level overhead to PHP, even with pre-cached bytecode, you're never going to get even close in terms of latency to a well tuned JVM running something like spring boot. And if you really hate Java as a language, you can always use something like Kotlin.