|
CPColin posted:What about if the currently common language is Groovy and the current framework varies between versions of Grails 2.x and 3.x? Quit.
|
# ? Apr 10, 2018 21:14 |
|
|
# ? Jun 8, 2024 08:40 |
|
strange posted:I'm starting a small-mid size project and have been given the option to choose the language. We're going to be doing loads of external HTTP requests. Obviously many good options but in terms of career and sanity, what would everybody choose? We're currently using C#. COBOL so that you can turn that into a sweet gig in the financial industry
|
# ? Apr 10, 2018 21:39 |
|
Jaded Burnout posted:Quit. Or should I use an even more obscure language and invent my own framework? Hmm.
|
# ? Apr 10, 2018 21:50 |
|
CPColin posted:Or should I use an even more obscure language and invent my own framework? Hmm. A Haskeleton framework, you might say?
|
# ? Apr 10, 2018 21:55 |
|
strange posted:I'm starting a small-mid size project and have been given the option to choose the language. We're going to be doing loads of external HTTP requests. Obviously many good options but in terms of career and sanity, what would everybody choose? We're currently using C#. If I used this project as an excuse to teach myself something flies at your company, and you want to do that, do it in F#. If not, just stick with C#.
|
# ? Apr 10, 2018 22:18 |
|
Jaded Burnout posted:A Haskeleton framework, you might say? I might, if I knew what that was!
|
# ? Apr 11, 2018 00:08 |
|
withoutclass posted:I'm not sure Scala is a good pick for career or sanity. SBT is some kind of hellspawn. A true non-user of SBT will not drown when tested.
|
# ? Apr 11, 2018 02:17 |
|
CPColin posted:I might, if I knew what that was! A framework providing the skeleton of an app in Haskell? It was a pun, or play on words.
|
# ? Apr 11, 2018 06:22 |
|
Good Will Hrunting posted:What are you doing with the responses? I just wrote a small app (like 50 lines) to do the same in Scala to replay web traffic logs to our staging API and it took like, under a day to get it running super effectively with AsyncHttpClient library. withoutclass posted:Are the requests incoming or outgoing? Is your shop all .Net? Would deviating from the main way your team does things be bad for future maintenance or if you're sick and someone needs to cover you? C# is a pretty good language, especially with async/await type stuff baked in, and if you're already running the .Net stack for hosting etc, you may as well stick with it. rt4 posted:I'd choose Go because its concurrency system makes doing lots of outgoing HTTP requests easy and because I like programming against interfaces Volguus posted:The first consideration should be "Who will maintain this 10 years form now when it has grown into a huge monster?. Is it reasonable for me to ask a .NET shop to learn a different language/technology?" The answer may be yes ... or not. The answer can also be " I don't give a poo poo". But if you like your coworkers and/or your place of work don't put unnecessary maintenance burden of them if you don't need to. And this kind of project sounds like it can be done in any language. Jaded Burnout posted:What sort of user interface does it have? Anything where you want a strong ecosystem for libraries? Any techs other than HTTP you're looking at tightly interfacing with? raminasi posted:If I used this project as an excuse to teach myself something flies at your company, and you want to do that, do it in F#. If not, just stick with C#. I agree with the concerns over picking something non-CLR/.NET but I've been given the explicit go-ahead to use whatever I want if I can make a technical case for it. Unfortunately my boss is leaning towards Node ("for performance" ), which I think is hot trash. I'm working with a single colleague who thinks the same. I personally love functional programming but colleague doesn't know anything about it. We're in an exploratory phase so this is all a bit fuzzy, but it'll be an internal service providing a uniform interface to multiple larger, sprawling REST-like external APIs. We'll need a database tracking user consent over time and probably be using JWT for auth. To me it feels like a natural fit for Erlang, but I suspect that's too much of a paradigm shift. Is it too much of an rear end in a top hat move to pick something like Go?
|
# ? Apr 11, 2018 07:30 |
|
strange posted:To me it feels like a natural fit for Erlang, but I suspect that's too much of a paradigm shift. Is it too much of an rear end in a top hat move to pick something like Go?
|
# ? Apr 11, 2018 09:29 |
|
strange posted:I agree with the concerns over picking something non-CLR/.NET but I've been given the explicit go-ahead to use whatever I want if I can make a technical case for it. Unfortunately my boss is leaning towards Node ("for performance" ), which I think is hot trash. I'm working with a single colleague who thinks the same. I personally love functional programming but colleague doesn't know anything about it. No point in node when you have a framework like Vert.x . Honestly Kotlin would be a good fit between your desire for functional programming and your coworkers' lack of exposure there. You can combine it with https://www.arrow-kt.io and get as much or as little functional programming as your team is comfortable with while sticking to a style of programming your coworker is comfortable with.
|
# ? Apr 11, 2018 11:58 |
|
Just use Java or C# depending on your stack. It might be boring but the only thing "exciting" gets you is tech debt and/or additional onboarding time for new engineers.
|
# ? Apr 11, 2018 12:06 |
|
Blinkz0rz posted:Just use Java or C# depending on your stack. It might be boring but the only thing "exciting" gets you is tech debt and/or additional onboarding time for new engineers. C# is so easy that developing in it makes me feel like I'm stealing from my company.
|
# ? Apr 11, 2018 13:43 |
|
strange posted:Unfortunately my boss is leaning towards Node ("for performance" ) Pick C#, Java, or literally anything that's not some dumb Silicon Valley vanity scripting language of the month for the sake of your replacement and .
|
# ? Apr 11, 2018 15:57 |
|
BurntCornMuffin posted:Pick C#, Java, or literally anything that's not some dumb Silicon Valley vanity scripting language of the month for the sake of your replacement and . Or pick the trendy Silicon Valley language and then spend the rest of your career there acting smug and bitter when no one else has the time to learn it since every other software base is written in the communal normal language and still needs to be maintained and developed on.
|
# ? Apr 11, 2018 16:23 |
|
Just pick c# because it's the least worst. Node sucks. Golang sucks. If you "love functional programming", you will be horrified with golang.
|
# ? Apr 11, 2018 16:49 |
|
BurntCornMuffin posted:Pick C#, Java, or literally anything that's not some dumb Silicon Valley vanity scripting language of the month for the sake of your replacement and . Portland Sucks posted:Or pick the trendy Silicon Valley language and then spend the rest of your career there acting smug and bitter when no one else has the time to learn it since every other software base is written in the communal normal language and still needs to be maintained and developed on. I vote for either of these.
|
# ? Apr 11, 2018 17:01 |
|
Just write it in erlang, geez
|
# ? Apr 11, 2018 17:20 |
|
Portland Sucks posted:Or pick the trendy Silicon Valley language and then spend the rest of your career there acting smug and bitter when no one else has the time to learn it since every other software base is written in the communal normal language and still needs to be maintained and developed on. hell yea, java Kicks rear end and I love it, i'm never changing (this is in earnest)
|
# ? Apr 11, 2018 17:21 |
|
Pick Ceylon, compile it to JS, and run it on Node, for maximum "Why the gently caress did you do this?" factor.
|
# ? Apr 11, 2018 17:34 |
|
You could just write your own language in C# and then use that. That should keep everyone happy
|
# ? Apr 11, 2018 17:43 |
|
Naar posted:Yes. Yes, it would be. If you nobody cares what language you use and you want to use something functional and Erlang-y, try Elixir which people can't seem to shut up about in my area. I was going to suggest Elixir
|
# ? Apr 11, 2018 18:02 |
|
So that's settled then, a DSL in Racket. I had hoped I could play off the openness to using new tech to add a second lang/stack to my skillset. Is it not stronger to position yourself as a generalist in the job market, rather than a ".NET guy" or whatever?
|
# ? Apr 11, 2018 18:14 |
|
Good Will Hrunting posted:hell yea, java Kicks rear end and I love it, i'm never changing (this is in earnest) Pssh, Java is too mainstream. The cool kids in the hipster JVM club went Groovy -> Scala - > Kotlin.
|
# ? Apr 11, 2018 18:18 |
|
BurntCornMuffin posted:Groovy -> Scala - > Kotlin. I use all 3 but I still have no idea how to write effective code from a unit-testable standpoint in a number of cases for at least the first two of those, Kotlin less so but still also a little. I wouldn't even say we're abusing static objects etc but like, a lot of the stuff I'm using Scala and Groovy for doesn't lend itself to easy testing very much.
|
# ? Apr 11, 2018 18:23 |
|
Jose Valasquez posted:You could just write your own language in C# and then use that. That should keep everyone happy Larry Wall wrote his own language for work. The result was Perl. Moral of the story: don't write your own language.
|
# ? Apr 11, 2018 19:05 |
|
Perl was awesome. I want first-class regex support in every language. Python's okay I guess, but it's agonizingly slow to write for the marginal benefit of "other humans can possibly read it."
|
# ? Apr 11, 2018 19:44 |
|
Good Will Hrunting posted:I use all 3 but I still have no idea how to write effective code from a unit-testable standpoint in a number of cases for at least the first two of those, Kotlin less so but still also a little. I wouldn't even say we're abusing static objects etc but like, a lot of the stuff I'm using Scala and Groovy for doesn't lend itself to easy testing very much. Honestly, that's more a failing of this industry's culture than anything else. All too often I see teams glaze over appropriately thorough testing at worst, dragging their feet over "ticking boxes", fear of finding an annoying bug or catching hell for overrunning a deadline. Worse, a lot of organizations are either ignorant to it, tolerate it, or otherwise enable it until the app either becomes an unmaintainable mess or finds a mention in the YOSPOS Secfuck thread. From the very beginning of my career I've found that to be a big frustration for me. I frequently get myself installed as the team repo admin and convince the team to come together on some sort of governance process that includes testing and peer review to try to mitigate it where I can, and lately I've been cultivating a pentest skillset to try to catch major flaws so I don't end up writing or signing off on a vulnerability (which, admittedly, is a fun learning project). I seem to be effective at bringing my teams together regarding code governance so far, but the state of the industry (and statistically, new projects when I land on them) regarding this is goddamned depressing.
|
# ? Apr 11, 2018 19:48 |
|
I've found that people don't know what to test or how/why it should be tested in a certain way, so they write a ridiculous amount of redundant mocks and tests, and begin to despise testing in general.
|
# ? Apr 11, 2018 19:53 |
|
Good Will Hrunting posted:I've found that people don't know what to test or how/why it should be tested in a certain way, so they write a ridiculous amount of redundant mocks and tests, and begin to despise testing in general. On one project I was on, the conversation around testing went something like: PMO: "Our test code coverage doesn't look good compared to other teams, we need more tests." ENG: "This is a front-end service that only talks to vendor-supplied APIs, what exactly should we be testing here?" PMO: "More test coverage!" So part of every sprint was writing a bunch of nonsense tests that boosted the code coverage. Making sensible tests wasn't important, just the number.
|
# ? Apr 11, 2018 21:13 |
|
If you prefer functional, use Racket instead of Go
|
# ? Apr 12, 2018 00:03 |
|
strange posted:So that's settled then, a DSL in Racket. Trying to get work to pay for learning new things is always good. But there's a balance between doing that and making the one-off unmaintainable project that will have your name cursed forevermore by your successor. Maybe scale down the "new tech" bit. Instead of introducing new language into your org, maybe pick a new coding style/paradigm/framework/whatever to try. Itll let you learn something new while keeping hope alive for future maintenance. You might even be able to pawn it off as beneficial to the company, a lil pilot project to see just what is that reactive programming thing and is it useful on the main product. As for positioning, I dunno. Some people hear generalist and think "master of nothing". Probably depends how you sell it in a conversation or an interview.
|
# ? Apr 12, 2018 03:40 |
|
The vast majority of jobs advertised in my region are .Net, JavaScript, Java, Python, PHP in roughly that order. Most of them senior. What I'm saying is take your bosses suggestion and write it in node
|
# ? Apr 12, 2018 03:59 |
|
write it in c# on netcore2
|
# ? Apr 12, 2018 04:02 |
|
this will assist in weeding out the bad .net devs who burn when they touch an actual shell
|
# ? Apr 12, 2018 04:03 |
|
uncurable mlady posted:this will assist in weeding out the bad .net devs who burn when they touch an actual shell but where will you get .net devs once you alienate the windows users
|
# ? Apr 12, 2018 09:57 |
|
pokeyman posted:Trying to get work to pay for learning new things is always good. But there's a balance between doing that and making the one-off unmaintainable project that will have your name cursed forevermore by your successor. That seems balanced, and makes sense. rt4 posted:If you prefer functional, use Racket instead of Go How do you find Racket? I imagine the domain specific language rabbit hole is difficult to get to grips with. (I think it was you who replied when I asked about CL/Clojure/Racket in the old Functional thread. If not - nevermind!) Cirofren posted:The vast majority of jobs advertised in my region are .Net, JavaScript, Java, Python, PHP in roughly that order. Most of them senior. This is what ended up happening. It turns out when my boss said "any tech", he really meant "use node". One upside is the local jobmarket loves Node for some reason!!!!!!!
|
# ? Apr 12, 2018 19:49 |
|
strange posted:How do you find Racket? I imagine the domain specific language rabbit hole is difficult to get to grips with. (I think it was you who replied when I asked about CL/Clojure/Racket in the old Functional thread. If not - nevermind!) It probably was me, although I'm not the only person on that thread to advocate it. I'm personally a fan of Lisps, and among those Racket has decent performance, sane tooling (unlike Common Lisp and Clojure imo), highly readable documentation, and a robust standard library. If you want to build something that makes lots of outside HTTP calls, it certainly has support for that. The Typed Racket variant has a superb static type checking system that can save you (or sometimes cause) some headaches. I don't actually have much use for the DSL features myself. OCaml is another good functional language that's often overlooked in these discussions, but its toolchain and runtime performance are superb.
|
# ? Apr 12, 2018 19:58 |
|
Its really wild that a greenfield project with a supposed open mandate to use any new tech ended up going forward with node. I know its not your decision, but goddamn.
|
# ? Apr 12, 2018 20:28 |
|
|
# ? Jun 8, 2024 08:40 |
|
raminasi posted:Its really wild that a greenfield project with a supposed open mandate to use any new tech ended up going forward with node. I know its not your decision, but goddamn. A few years ago the consulting company I worked for had a client whose CTO insisted we use Node and some weird cloud-based database for a greenfield project. A month or so after we started, the client fired the CTO.
|
# ? Apr 12, 2018 20:34 |