|
So may I ask a stupid question? For server-side, and as someone who's learned very little Python: What's the difference between using Django with a RESTful API in mind, and a fully JS app? Apart from the obvious. Both are interpreted languages, and JS has the ability to inject dependency (specially going to be true in JS when ECMA6 is finalized), making them in a way similar in my view, except Python *can* be compiled, and except for the whole callbacks/prototyping fucktruck you can't get around. That's JS. Django really handles performance issues that much better? I'll have to read up more on the whole I/O blocking point for node. I ask humbly, not knowing a poo poo about Python and barely now getting the grasp on JS in the backend. I'd also like feedback from you/others on recommendations. Would you recommend someone learn Spring instead for server-side code? Or something else? I'd prefer something Java-based, just because it's one of the big focuses for this school semester. I guess you really hate JS, but I like Angular. At my current job I only work front-end, and I work it a lot, so for personal projects I just need a good, small, simple, and maintainable backend. I don't even care what kind of database it uses as long as it's secure. Obviously for small projects I could just use anything, but I like imagining everything might become something huge.
|
# ? Aug 14, 2015 00:40 |
|
|
# ? May 27, 2024 01:56 |
|
pepito sanchez posted:So may I ask a stupid question? For server-side, and as someone who's learned very little Python: What's the difference between using Django with a RESTful API in mind, and a fully JS app? Apart from the obvious. Both are interpreted languages, and JS has the ability to inject dependency (specially going to be true in JS when ECMA6 is finalized), making them in a way similar in my view, except Python *can* be compiled, and except for the whole callbacks/prototyping fucktruck you can't get around. That's JS. Django really handles performance issues that much better? I'll have to read up more on the whole I/O blocking point for node. I ask humbly, not knowing a poo poo about Python and barely now getting the grasp on JS in the backend. Nobody was saying Django or Ruby on Rails are good ideas either! They really aren't! And Angular is really, really loving stupid even by web dev standards. Most commercial web developers couldn't find their own asses with two hands and a map.
|
# ? Aug 14, 2015 03:12 |
|
pepito sanchez posted:So may I ask a stupid question? For server-side, and as someone who's learned very little Python: What's the difference between using Django with a RESTful API in mind, and a fully JS app? Apart from the obvious. Both are interpreted languages, and JS has the ability to inject dependency (specially going to be true in JS when ECMA6 is finalized), making them in a way similar in my view, except Python *can* be compiled, and except for the whole callbacks/prototyping fucktruck you can't get around. That's JS. Django really handles performance issues that much better? I'll have to read up more on the whole I/O blocking point for node. I ask humbly, not knowing a poo poo about Python and barely now getting the grasp on JS in the backend. For one thing, many people would argue that there's not much difference between Python and JS because neither have static typing and thus both are bad for large scale, long term projects. From a usage standpoint there are a lot of similarities between Python and JS. Python+Django isn't a performance beast either. However, some arguments someone might make for why Python is better than node:
|
# ? Aug 14, 2015 03:12 |
|
Okay so Django is another no. Thanks for the replies. I still think Python is a pretty cool language, just for small projects. I'm just slowly making a game on the side with it, and it's a joy to play with, really like a toy language where you can see the structure of a real language play out in simplified pseudo-code (almost).
|
# ? Aug 14, 2015 03:54 |
|
Thermopyle posted:
None of these things are true.
|
# ? Aug 14, 2015 03:56 |
|
pepito sanchez posted:Okay so Django is another no. Thanks for the replies. I still think Python is a pretty cool language, just for small projects. I'm just slowly making a game on the side with it, and it's a joy to play with, really like a toy language where you can see the structure of a real language play out in simplified pseudo-code (almost). Python is great for prototyping. Other than that is just abuse.
|
# ? Aug 14, 2015 04:27 |
|
all web dev languages suck
|
# ? Aug 14, 2015 04:39 |
|
gbaby posted:all web dev languages suck the world is just a terrible place edit: C# is pretty alright aside from that whole Windows thing though
|
# ? Aug 14, 2015 04:54 |
|
gbaby posted:all web dev languages suck if there's anything you could gather from all of these threads put together it's this. there is no good option. maybe php and i refuse to learn php out of pure spite.
|
# ? Aug 14, 2015 05:16 |
|
Suspicious Dish posted:None of these things are true. I knew exactly who would post this.
|
# ? Aug 14, 2015 05:25 |
|
Thermopyle posted:Hah! I'm happy my posting is so recognizable.
|
# ? Aug 14, 2015 05:27 |
|
pepito sanchez posted:if there's anything you could gather from all of these threads put together it's this. there is no good option. maybe php and i refuse to learn php out of pure spite. Just learn C#/ASP.NET MVC if you can tolerate Microsoft and IIS, or Java/Spring MVC if you don't like Microsoft, and just learn how to do javascript front end without relying on monolithic javascript "frameworks" that suck rear end.
|
# ? Aug 14, 2015 05:35 |
|
Anyway, yes, I agree they're not exactly true which is why I don't claim them. They're just the standard arguments in python vs node arguments.
|
# ? Aug 14, 2015 05:36 |
|
pepito sanchez posted:What's the difference between using Django with a RESTful API in mind, and a fully JS app? Apart from the obvious. pepito sanchez posted:Would you recommend someone learn Spring instead for server-side code? pepito sanchez posted:I don't even care what kind of database it uses as long as it's secure. NoSQL databases may have their place in providing solutions to specific problems. But I wouldn't use Mongo "by default", but only when you have data sets that really don't mesh well with the relational model. pepito sanchez posted:Obviously for small projects I could just use anything, but I like imagining everything might become something huge.
|
# ? Aug 14, 2015 06:00 |
|
WebSharper and Yesod are the only two unmistakably Good™ web frameworks. The only problem is that roughly no one uses them, so they don't have all that much support.
|
# ? Aug 14, 2015 07:15 |
|
piratepilates posted:the world is just a terrible place Who needs windows anymore?! .NET is open source and portable now, baby. That being said, I have a "take home project" for an interview, and I'm probably going to write it in Node, because it's a tiny prototype and I can bootstrap it in an hour, tops
|
# ? Aug 14, 2015 17:49 |
|
I don't understand why everyone ITT is insisting that all web apps be written in statically typed languages from the start. My experience is that if you're starting from scratch on something you're not going to understand your end product/the business domain well enough to build anything that you won't want to totally replace after you start gaining momentum. If you know you're going to want to start over again when your app hits ~40k lines of code, why would you spend that time writing in verbose, clunky languages? Better just to code it Ruby/Python/even Node, get it out the door, and then when it starts to get too big on you, just move to microservices in Java/.NET/whatever. Of course, I'm also a person who doesn't understand people who only ever code in one language and I find writing code to be really easy if you already know exactly what functionality you're implementing. I know a lot of people are afraid of rewrites. But at the same time, coding a system you see being used in "5-10 years" is sort of crazy to me when you're talking about application code. You're not building a matrix manipulation library based on 200 year old math here.
|
# ? Aug 14, 2015 18:45 |
|
I think there are far more companies running rails/django stacks that are over 5 years old than you think there are. I work at one such company. In theory rewriting is a great idea. Maybe. In practice, it rarely happens before the codebase gets huge and unwieldy and incredibly difficult to rewrite because guess what, the threshold for "ok time to rewrite because our rapidly developed product has taken off" occurs during rapid growth and gently caress you don't have time to stop everything and rewrite it all
|
# ? Aug 14, 2015 18:59 |
|
let i hug posted:If you know you're going to want to start over again when your app hits ~40k lines of code, why would you spend that time writing in verbose, clunky languages? C# or Scala aren't verbose or clunky.
|
# ? Aug 14, 2015 19:08 |
|
let i hug posted:coding a system you see being used in "5-10 years" is sort of crazy to me when you're talking about application code. I'm not sure I follow here. Is a large percentage of software that you use younger than 5 years?
|
# ? Aug 14, 2015 19:13 |
|
let i hug posted:I don't understand why everyone ITT is insisting that all web apps be written in statically typed languages from the start. My experience is that if you're starting from scratch on something you're not going to understand your end product/the business domain well enough to build anything that you won't want to totally replace after you start gaining momentum. If you know you're going to want to start over again when your app hits ~40k lines of code, why would you spend that time writing in verbose, clunky languages? Better just to code it Ruby/Python/even Node, get it out the door, and then when it starts to get too big on you, just move to microservices in Java/.NET/whatever. A bad post.
|
# ? Aug 14, 2015 20:07 |
|
Unfortunately, just because it's a good idea to throw away the first version/prototype doesn't mean that that ever happens in reality.
|
# ? Aug 14, 2015 20:22 |
|
qntm posted:Unfortunately, just because it's a good idea to throw away the first version/prototype doesn't mean that that ever happens in reality. And when it does it turns out to be far more of a pain in the arse than you thought it would be initially. Rewriting a nontrivial code base from scratch to do exactly what it did originally is hard.
|
# ? Aug 14, 2015 20:40 |
|
Steve French posted:I think there are far more companies running rails/django stacks that are over 5 years old than you think there are. I work at one such company. Newf posted:I'm not sure I follow here. Is a large percentage of software that you use younger than 5 years? qntm posted:Unfortunately, just because it's a good idea to throw away the first version/prototype doesn't mean that that ever happens in reality. Okay, first off I should acknowledge that I work at a large tech company and we have more flexibility than most and have the benefit of some very experienced people who are good with designing system architectures. I know that puts my experiences far from the norm, and I might be out of touch here. That said, the best part of web development in the past few years as I see it is an increased use of distributed architectures that are a lot easier to transition into/make changes to than traditional more monolithic applications. The senior guys at my company are really good at mapping these sorts of things out, and once you have all your application seams identified it's easy to peel off bits of functionality and serve it as a REST API or w/e. When it's done well it's not a whole lot different than how you would normally iterate through a product's development, because you just look at the worst performing part of your code, split it off, rewrite it in a more optimal way, and plug it into the system. In this context, you really can just (gradually) throw away that 1.0 and worry about optimization when you know more about what's going on. It also sets you up to take advantage of cloud environments, etc etc. This obviously doesn't work if you're making desktop applications/embedded software, but with the web you really get to leverage your control over the whole server ecosystem. I mean, Facebook started out in PHP, and they figured their way out of that mess somehow.
|
# ? Aug 14, 2015 20:42 |
|
Steve French posted:I think there are far more companies running rails/django stacks that are over 5 years old than you think there are. I work at one such company. Working on legacy Rails apps is the loving worst
|
# ? Aug 14, 2015 21:25 |
|
let i hug posted:
They figured their way out of that mess by contiuing to use PHP, and then when massive performance problems popped up they started teams to come up with different ways of making their existing PHP codebase faster, such as HHVM (new runtime for PHP), and HipHop (a transpiler that just translates PHP to C++), and Hack (a new dialect of PHP that they've just started using instead of rewriting their codebase).
|
# ? Aug 14, 2015 21:40 |
|
Yeah. Facebook is basically the case in point for digging in on a technology no matter what.
|
# ? Aug 14, 2015 22:06 |
|
I'm not really sure how much of a help it is to start off with something like Node.js and planning to rewrite it -- unless your long term goal is to be using some messy IBM framework that no one knows how to use then is it really that much more convenient to use Express.js for the first year instead of starting off with Dropwizard or that slim version of Spring?
|
# ? Aug 14, 2015 22:30 |
|
triple sulk posted:Working on legacy programs is the loving worst
|
# ? Aug 14, 2015 22:55 |
|
Rails apps are particularly bad because (a) dynamic typing (b) pretty much everything changes between each version (c) you are obligated to do this several times a year to get security updates. Web development is a clusterfuck generally speaking, but Ruby and Node are about equally as horrific. Switching my team to the JVM made work tolerable again.
|
# ? Aug 14, 2015 23:31 |
|
let i hug posted:I don't understand why everyone ITT is insisting that all web apps be written in statically typed languages from the start. My experience is that if you're starting from scratch on something you're not going to understand your end product/the business domain well enough to build anything that you won't want to totally replace after you start gaining momentum. If you know you're going to want to start over again when your app hits ~40k lines of code, why would you spend that time writing in verbose, clunky languages? Better just to code it Ruby/Python/even Node, get it out the door, and then when it starts to get too big on you, just move to microservices in Java/.NET/whatever. in the line of business industry, which is pretty huge, the expectation is that some company or organisation pays to have a project delivered; there's an implementation phase, they pay a bunch of money, then it's done. then they want to keep *using* the system for as long as possible. sometimes there's a followup support contract or internal support devs; in either case these are like, part time people with little experience in the system, who have to touch it once every 18 months and want change to be as easy and reliable as possible. if an IT system can serve its business purpose for 5-10 years, why not build it that way?
|
# ? Aug 15, 2015 10:10 |
|
Geez, I was exploring trying something other than C#/.NET for server side, and this thread has scared me away from that entirely.
|
# ? Aug 15, 2015 16:10 |
|
Java
|
# ? Aug 15, 2015 16:21 |
|
Uziel posted:Geez, I was exploring trying something other than C#/.NET for server side, and this thread has scared me away from that entirely. It's not really a bad thing to set these technologies up on your own and learn whats up. And node has its uses in like one-off/internal projects, it's just that you're committing malpractice by deliberately choosing to use this poo poo in production environments.
|
# ? Aug 15, 2015 16:39 |
|
I'll tell you what though -- TypeScript is quite nice, if you're gonna use JavaScript extensively then you should probably be using it.
|
# ? Aug 15, 2015 17:58 |
I work in a company more than seven years old. Our backend is Python, Django, and Postgres. I completely agree that the lack of static typing is the one thing that hurts most in Python. We're at ~125k lines and refactoring loving sucks. That said, the biggest heart aches come from the UI, which is Angular and not developed by my team. We got bitten by a dependency freeze problem in a production deploy. Bower (or whatever the gently caress they use) had specified an approximate package, so testing went through staging and QA fine, but broke in prod because the package got updated. It also was still broken on the roll back, which was a pants-shittingly good time for everyone.
|
|
# ? Aug 16, 2015 03:49 |
|
Yeah ugh. Shrink wrap your dependencies and release as a .tar.gz otherwise you can face that pain so easy. Semantic versioning is good in theory but so many libraries don't respect it. (lol at the underscore library authors reaction to being called out on breaking semver)
|
# ? Aug 16, 2015 04:39 |
|
Even with semantic versioning, you should be releasing to prod the exact same configuration you QAd. Even for a patch release of a library, your app could have been inadvertently relying on a bug that the patch fixes, and now you're suddenly broken in production. Semantic versioning just tells you what you can expect to upgrade as a matter of course when you start your next release cycle, vs. what you're going to have to budget time in the schedule to upgrade to.
|
# ? Aug 16, 2015 05:06 |
|
Yeah, QA and Prod should be subject to the exact same configuration management, and deployment should be build once, deploy twice, with all packages pulled down into the build. That way the build artifact (whatever it is) can be rolled back to with absolutely zero dramas.
|
# ? Aug 16, 2015 05:27 |
|
|
# ? May 27, 2024 01:56 |
|
Uziel posted:Geez, I was exploring trying something other than C#/.NET for server side, and this thread has scared me away from that entirely. Scala + Spray
|
# ? Aug 16, 2015 08:33 |