• 0 Posts
  • 10 Comments
Joined 1 year ago
cake
Cake day: June 10th, 2023

help-circle


  • IMO Clojure really shines with a REPL-driven development, where you have a REPL to interact with a live running application. You can have a very productive workflow where you conduct little code experiments and incrementally build up functionality. Typically, in this workflow, you’re also sending code (as S-expression forms) to the REPL from your editor to inspect or test the output (some tools have inline display of the output like the Calva Clojure extension for VS Code ). Any tests you come up with in the REPL can usually be turned into unit tests fairly easily (e.g. copy/paste into a tests file) and those tests can be run automatically on source change in the background as well or from the REPL itself. There are also tools on built on top of the REPL that can be used for live inspection of data structures, data visualization/exploration, creating watches on variables, etc. Although the Clojure REPL is best used when developing Clojure applications, I’ve also found it useful for getting familiar with Java apps such as a complex Spring Framework web app that I had to work on.

    For Python, I typically use Jupyter/IPython to hash out and test the functionality I need and I find provides a much superior experience to just using the regular $ python REPL. With PyCharm, the Jupyter integration is really nice and makes the experience a lot more liquid than having to flip between a browser tab and your editor. It’s not quite as nice as a REPL integrated with your live running app, but I personally find it more productive than running a debugger or just spamming print statements and modifying and rerunning my Python script 100X.

    I really hope that more languages start to better support for more exploratory, experimental development workflows since sometimes I just want to play around to get familiar with using a library or tool in a sandbox. I think there’s a lot of room to improve developer productivity through blending and integrating together REPLs, notebook-like environments, hot code reloading and other tools/techniques to enable rapid prototyping and faster feedback for developers. Tests and type checking are very useful when you’ve figured out what you need and need to have sanity checks, but can be a major hindrance in that “figuring it out” exploratory stage.






  • Work. Software development is so much nicer on Linux and I grew to really enjoy the power and flexibility of the terminal. I started with dual boot on my PC and eventually deleted my Windows partition and went full Linux.

    Many things have substantially improved significantly in the last 10 or so years such as gaming, drivers and overall desktop user experience to the point where I dread trying to use a Windows machine. Plus I’m pretty comfy now and like that I have full control over my machine when I use Linux vs whatever spyware MS is trying to shove down people’s throats.


  • I haven’t heard anything bad about Endeavor in the same way people slam Manjaro for their poor management of an Arch based distro. It’d be worth a shot I think. Rolling release distros like Arch can provide a very nice up-to-date user experience vs major releases, which I have never had much luck with on Linux.

    I’ve never heard ofMicroOS, but have heard of OpenSUSE. It sounds like it would be useful for servers and maybe if you want to do some software development where you’d want to use containers for building and running your app. I’ll have to check it out.


  • I’m sorry to hear that you’ve had a poor experience with trying to migrate to Linux. It is a big switch in terms of how the OS is structured and how things work. Unfortunately the out of box experience of Linux on personal laptops and desktops can be quite poor for commonly recommended distros like Ubuntu especially if you want to game.

    This might be contentious with some people but if you or anyone is feeling adventurous and in the mood to try to understand how Linux works, I would recommend Arch. It gives you the reins to setup and configure your system how you wish. I would however try it in a VM first before going dual boot or as your sole driver.

    I’ve tried many Linux distros over the years (Mint, Ubuntu, Centos, etc) but Arch has been the most stable and enjoyable to use. I have one install from 2013 that’s still going strong. Nvidia drivers or Steam can be installed without setting up PPAs or downloading binaries as one might need to do on other Linux distros. Most third party apps I would want are available through the Arch User Repository (AUR). The Arch wiki is amazingly useful for any Linux user.

    Most games I play work through Steam or Lutris with the latest Proton from https://github.com/GloriousEggroll/proton-ge-custom