Programming Knowledge & Tech Stack

Joined
Jul 26, 2019
Messages
49
Likes
36
Points
0
Out of curiosity: what are your favorite programming languages and technology stacks?

During the State of the Word conference in ‘15, Matt Mullenweg gave the advice to “Learn JavaScript, deeply.”

Glad I followed his advice, and at the moment I really enjoy working with the JAMstack. Gatsby, NextJS, and to a certain degree React proper, do a go job on “making me feel at home.”

Still love WP/WC tho, and somehow it feels like a dear friend from my youth that I can’t seem to say goodbye.

So, I Guess for me it’s a tie between both the LAMP- and JAMstack.
 

Ryuzaki

お前はもう死んでいる
Staff member
BuSo Pro
Digital Strategist
Joined
Sep 3, 2014
Messages
4,329
Likes
8,329
Points
8
I hate that Mullenweg had basically made promises that Wordpress would be a PHP platform and then made the jump to Javascript with Gutenberg. I get it and don't blame him. Things change. I'm glad Advanced Custom Fields is carrying the PHP banner still for us.

I'm no incredible programmer or scripter, but for the tasks I do find in front of me that call for it, I like PHP and Javascript. I did a stint with Ruby and found it lacking, being so new at the time, though the syntax was great. I think Python is the ultimate advancement thus far in terms of syntax and human readability, though not quite as well as Ruby. But it has history and a ton of community support.

I think, if I was to reaaaally focus on full mastery, I'd be looking at the old gray mare of PHP, MySQL, and Javascript (along with simple stuff like HTML & CSS).

I did quite a bit of FORTRAN and C++ back in my previous life.
 
Joined
Jul 26, 2019
Messages
49
Likes
36
Points
0
I hate that Mullenweg had basically made promises that Wordpress would be a PHP platform and then made the jump to Javascript with Gutenberg
True, but if we are to believe Matt and the rest of the WP dev team and countless volunteers, WP was feeling the heat from Wix and that other one I can’t quite remember at the moment (will probably pop back into my memory right after hitting “Post reply.”). And if I’m honest I really can’t figure out if this is the true motivation, but I do doubt it. Big time.

JS in WP has always been a weird one. On the one hand we have jQuery, basically acting as a wrapper for JS, and on the other hand we where introduced to the Customizer api and then encouraged to use PHP. That one also turned out to be a wrapper for the JS based Customizer api.

And I may have jumped onto the “JS everywhere” bandwagon, but I agree with you that a deep and thorough understanding of good-old LAMP is, and will be, a solid choice for the future.

But if I’m being honest the combination of JS and Typescript is sexy as h&ll. Guess I can’t prevent myself from looking over the fence and find yet another distraction...

Did you by any change had a look at Frontity? Since you are a seasoned WP’er, I value your thoughts and input.
 

Ryuzaki

お前はもう死んでいる
Staff member
BuSo Pro
Digital Strategist
Joined
Sep 3, 2014
Messages
4,329
Likes
8,329
Points
8
Did you by any change had a look at Frontity? Since you are a seasoned WP’er, I value your thoughts and input.
I don't think I've seen this before. It's a killer idea. At first I was thinking "but I don't want all of that strapped onto my CMS and bloating my database and causing distractions" until I realized the website isn't a part of it, unless I'm misunderstanding. It seems like a CMS for everything that encapsulates the actual act of publishing and marketing, but doesn't include those two things. It's a slick idea and I won't be surprised if they aren't or don't end up making gobs of money.

What's coming to mind for me is getting all of my style guides, operating procedures, training videos and documents together in one place. All you'd have to do to bring someone up to speed is on-board them (give them a username and password) and they can train themselves if you did a good job creating the documents.
 
Joined
Jul 26, 2019
Messages
49
Likes
36
Points
0
@Ryuzaki Frontity falls into the Gatsby, Next, and Vue lineup. At the end of the day the bulk of your time is spend on “theming”.

You spin up a LAMP server, install WP, have your client or yourself create and write the posts and pages, menus, add Yoast(The SEO Framework is my preferred one...) and basically continue the WP life as you know it. Frontity uses a separate server running Node.js.

You tie both together via the WP REST api and use WP as a headless CMS. If you or a client happens to use WP.com, no problem. The WP.com REST api is supported on both ends of the equation.

What I find to be a big plus is that a plugin like Contact Form 7 works on the React frontend and actually validates the data and delivers it to your inbox. With something like Netlify you have to get your wallet out if you happen to receive more than 100 submissions a month.
 

LiamGallagher

On my way out of the 9-5
Joined
Jun 23, 2017
Messages
31
Likes
23
Points
0
For me it depends.
For basic sites which little or no dynamism required then JAMstack is my option.
Since I’m a Fullstack engineer, I really have a strong preference for frameworks like React or Vue. I kind of cringe when I see Frontend created with PHP but that’s how it was and that’s how I learned.

I think that JS is gonna be present everywhere, even more than today, and we’ll start seeing more options like Frontity to seamlessly integrate WP with React or Vue or Angular.

Nowadays I use JS only to code both at work and for side gigs. I’ve seen Python and Java to have a strong presence still.

PHP is not dead and it won’t be at least in the short term but, it’s been a long time since the last time I needed to code in PHP
 
Joined
Mar 28, 2019
Messages
66
Likes
64
Points
0
I also started out with PHP and WP, but have recently moved to Gatsby. First I planned on using it with headless Wordpress (the WPGraphQL plugin is pretty good), but recently Contentful launched a really good free plan. For most sites that don't need to be updated every five minutes, or need 10 different editors, the community plan is more than enough.

I'm in the process of launching an eCommerce store, and for that I also use Gatsby. With the Shopify Lite plan you can get the Shopify backend and payment processing, instead of having to use something clunky like WooCommerce.

I'm more of a front-end guy, so I really love how they're making it easier to integrate all these backend services, so that I can just focus on making a good and fast front-end and not have to deal with maintaining a server, managing databases etc.

With all the free hosting (vercel, gatsby cloud, netlify etc.) and free/cheap plans (contentful/shopify lite), and easier developer experience, it's just a lot more convenient to use Gatsby/Next/Nuxt than Wordpress these days. But I guess it also depends on the type of site you're making.
 

bernard

BuSo Pro
Joined
Dec 31, 2016
Messages
1,075
Likes
826
Points
3
I can only code competently in Python.

I am looking to code a proper website project now and I wouldn't mind coding it in Flask and the frontend in React: https://blog.miguelgrinberg.com/post/how-to-create-a-react--flask-project

I do know that I will do a course in css and javascript to get that down, once and for all, because it will also help with Wordpress.
 

BCN

$$$$ ¯\_(ツ)_/¯ $$$$
Joined
Dec 26, 2015
Messages
245
Likes
252
Points
1
I use python for most things, ie a lot of times I build stuff with Docker, Python and celery for scheduling and periodic tasks. For web: js. I use JS (Nuxt/Vue) and SCSS when I can choose. For clients I still do a lot of WordPress.

I'm not a developer formally, but I can make most things. Sort of like a great chef with no culinary school.

Flask is good, but you probably just want to do Django right away for web projects. Flask is nice for smaller things, but expect you to know more and have more opinions. I've used flask for a few API endpoints, ie I made a 4g proxy server with api endpoints to rotate the IP, and used flask to expose api endpoints.
 
Joined
Mar 25, 2019
Messages
50
Likes
58
Points
0
There is no One True Best Stack™, each section of a dev's stack is changes according to the problem that they are trying to tackle. Every language has its pros and cons, each has its own ecosystems where they excel at. If you only know one language, you'll only know one way to do things. As the saying goes, everything becomes a nail with only a hammer in your toolbox.

If I were to build an ai microservice, I'd use python and flash.
If i were to build a cross-platform app, I'd use react, react-native, an electron.
If I were to build a high-performance game server, I'd use any established webservers with rust/C/C++
If i were to build a cross-platform game, I'd use Godot.
If i were to build content sites, my current favourite way is to use hugo + netlifycms to be completely serveless. I compile separate js bundles and load them on a as-needed basis, to keep page load times fast.
If i were to build a web server to glue everything above into a single web service, my go-to language Elixir.
 
Joined
Jul 26, 2019
Messages
49
Likes
36
Points
0
Thanks @Ryuzaki @LiamGallagher @city17 @bernard @BCN and @FIREman for your input.

As a follow-up question I’d like to know who’s using a staging and production setup for development.

My current workflow is local->staging->production. After sign-off things move from staging to production. For my own project(s) I’ll move things from local to production after my tests haven’t failed.

For everything there’s a combination of Git and Github or Bitbucket. The difference between Gh or Bb only depends on who’s using what.
 

SmokeTree

Developer/Linux Consultant
BuSo Pro
Digital Strategist
Joined
Sep 23, 2014
Messages
228
Likes
416
Points
1
A little late to the party here but I've been using Elixir (https://elixir-lang.org/) and Phoenix Framework (https://www.phoenixframework.org/) for around 4-5 years now to build anything from webapps, APIs, scrapers at scale to internal systems and haven't turned back. I can also use it to create IOT devices with the "nerves" project (https://www.nerves-project.org/platform). There's really nothing like it for dealing with many different tasks at once and still maintaining microsecond response time. Elixir is built on the Erlang VM and is made for concurrency. The syntax is almost identical to Ruby, which was my language of choice since 2005 or so and a language I'm very proficient at. Ruby was my breakaway from PHP, which I never did like but learned enough to be proficient at because, oddly enough, PHP was my breakaway from PERL, which I also was never a fan of. I also develop exclusively on a Linux VM because there is zero reason in trying to do dev work in Windows/Mac when it's going to be deployed to a Linux server anyway.

JavaScript is a given. Phoenix has an asset pipeline and is already set up with Webpack/Node so I can just do "npm install blah --save" and install the libs I need. I'm not a fan of "one click" or "super simple handy dandy does it all for you" things but then again the types of systems I build are well outside the scope of general CMS type systems.

For anything that requires pure speed, I'll use Go because it's close enough to C++ in performance for the kind of work I'm doing without the "hunt for your own food" approach to programming. To tie my systems together, I almost always use Redis as a pub/sub type system for message passing but also for caching data and implementing queue strategies that guarantee that no 2 consumers can grab the same record from the queue because of race conditions or whatever.

Now staging/production scenarios, it depends on the system. Sometimes I can do all the testing I need on my dev box and just push to production, other times I set up a dedicated staging server. I setup my own VPS for this because I pretty much live on the command line and love setting up my own dev environments. For deployment of the elixir/phoenix stuff I use "edeliver" (https://github.com/edeliver/edeliver) which allows me to script the entire update process and even do hot swap code updates which will update the code/system while it's running with zero downtime or need for a maintenance screen. I keep all my source code in a self-hosted git repo and can deploy a new update with a single command.