• 0 Posts
  • 36 Comments
Joined 2 years ago
cake
Cake day: June 22nd, 2023

help-circle

  • For an IDE.

    I can configure VSCode as a full IDE for say C#/.Net development, and it performs pretty much just as well as VS which is written natively.

    Ditto for configuring it as a Python IDE vs PyCharm, ditto for Java and Eclipse, ditto for basically everything else.

    And I’m sorry but I have to respectfully disagree here: VIM / Neovim / any purely text based editor has never had anywhere near the same feature set as VS Code + it’s extensions. They are more performant, run anywhere, and can be configured to be quite powerful, but they’re still fundamentally hamstrung by using a typewriter’s line by line interface rather than being able to easily draw arbitrary 2d or 3d graphics and use the power of CSS styling.

    Like, just drawing out a list of items, and then being able to get more detail on one of those items, is fundamentally a pain in command line, requiring a list command and then an item detail command or a list verbose command, where is in a GUI you just list items and can then expand them or hover on them for more info.


  • As a casual js user (I build some static sites for fun and personal use), I am under the impression that JavaScript “sucks” mostly because some things really make it look like JavaScript was invented as a quick scripting tool rather than the backbone of the WWW.

    I’ll bring an example that maybe helps me learning someting. Why in javasctipt “1” == 1? I know the === operator exists, but why isn’t the default behaviour the safer one? Especially when the mantra is “don’t trust the user”.

    Like, I get, I am a strongly-typed guy, but I see why weakly-type languges exists, but this feel frankly moronic, and all the answers I’ve seen are " because that’s how it is". That’s just copium.

    Like, you’re not entirely wrong here. The == vs === is entirely just a legacy of a poor early decision in the language’s development.

    However, the reason that it’s still there isn’t just “because that’s how it is”, it’s to maintain backwards compatibility. You could break the language and change your equality operators to something more sensible, but to do so would result in:

    • A) If you make a new language that compiles to Javascript (like Typescript for instance), you can maintain compatibility, but you do now need to build a bunch of tooling around compilers and debugging so that you can trace errors in the compiled and running javascript back to your own code. In any situation where you have a codebase that contains a mix of the two, you’ve got to remember and stay on top of which to use where.
    • Or B) If you make a new dedicated language that runs in browsers, now browsers need to ship two engines, one for legacy javascript web sites and apps, and one for whatever your new language is. Same issues with mixing legacy and new code.

    OR the real answer is C) devs just add linters that check your code for common mistakes. All modern javascript dev environments will include a linter that yells at you if you accidentally use the == sign, right in your IDE as you type it, making it not really a big deal, and autocomplete will automatically use ===.

    And maintaining backwards compatibility for the Internet / World Wide Web, is probably the single most important place to maintain backwards compatibility, as it is effectively a continuous archive of information and publications. Putting up with === is honestly not that big of a deal in the context of all the above.

    Like, I get, I am a strongly-typed guy, but I see why weakly-type languges exists,

    I got my start with Java and C#, then Python, then Javascript, then Typescript / etc. etc. Trust me, I vastly prefer a good type system, which is why I use Typescript for everything I can these days. It is still technically weakly typed in that you don’t get type errors at runtime, just at compile time, but it still makes coding in javascript soooo much nicer and more pleasant and more predictable, and it’s quite frankly the most flexible and easy to use Type system / syntax of any language that I’ve used.

    Also when I tried to compile a single Cordova app to play around I needed some 5GB of npm modules that totalled ~200k files! Is that how modern app development is like?

    I mean, Cordova is not just a web app platform. That’s including the toolchain to build a web app, but also do compile it into an Android app, or to compile it into an iOS app. You’ve basically got large chunks of the android and ios sdks in there.

    Also, the particular webpage OP linked might be a little extreme, but modern software does suck ass, and is not user-friendly nor efficient.

    Just look at mobile communication apps, like Teams. The user experience is terrible, the UI is unrespive, the battery drain is crazy and it takes 800MB of space.

    Yes, because of corporate practices that prioritize feature development instead of addressing tech debt or performance. But that’s not always the case. I worked at Meta for a stint as a contract developer, I’ve seen how they make decisions and they’re not uninformed. They will run A/B testing on simulated apps to measure exactly how much of a difference performance makes, and then balance that against the effort it will take vs the effort it will take to develop new features and then they prioritize accordingly.

    No where else I’ve worked does that. Everywhere else just hears a customer or executive yell for a new feature and then the PM just starts working on it without proper research or without giving team’s time to go back and address tech debt.

    Is this because it’s an electron app, or because it’s made by incompetent programmers? I don’t know, but we made incredible hardware improvements in personal computing, new software should be even more efficient and use them better, not get more and more bloaty to have the same experience on older and newer hardware

    Given that VSCode is made by the same company, is also an electron app, and is generally remarkably performant, I would posit that teams is made by worse programmers since it’s a less attractive product to work on, and the team is probably less user focused since users don’t buy their software, the users’ workplaces do.


  • Do you know how you make good web apps with good performance? You don’t listen to people whining and bitching about a language, you go out and start coding something and find out where the actual issues are.

    Javascript / Typescript is great. There are little annoyances here and there, like with literally every single language, but anyone who says it sucks overall is a quite frankly, a moron.

    Our project focuses on advanced and experienced computer users. In contrast with the usual proprietary software world or many mainstream open source projects that focus more on average and non-technical end users, we think that experienced users are mostly ignored. This is particularly true for user interfaces, such as graphical environments on desktop computers, on mobile devices, and in so-called Web applications. We believe that the market of experienced users is growing continuously, with each user looking for more appropriate solutions for his/her work style.

    Designing simple and elegant software is far more difficult than letting ad-hoc or over-ambitious features obscure the code over time. However one has to pay this price to achieve reliability and maintainability. Furthermore, minimalism results in reasonable and attainable goals. We strive to maintain minimalism and clarity to drive development to completion.

    You now what all of this says? It says that they focus on building utilities that accomplish some small technical task and ignore their users’ actual workflow needs. It’s the equivalent of minimalist architects that make unlivable spaces because they’re technically nice.



  • masterspace@lemmy.catolinuxmemes@lemmy.worldVim > VSCode
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    8 days ago

    Have you tried using VSCode / VSCodium? I’ve tried using a VIM based workflow and found myself missing many graphical dev features in VSCode.

    And sure, there’s nothing wild about continuing to use a process that works for you, but it is a little wild to insist that your process is the best and other people should learn it, if you also know that it has inherent limitations that alternatives don’t.





  • masterspace@lemmy.catolinuxmemes@lemmy.worldVim > VSCode
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    8 days ago

    But it’s literally doing that in your image. When a horizontal and vertical line cross the horizontal line breaks.

    Yes, as an intentional graphical choice to illustrate the crossing of two paths.

    In lazyvim a vertical line, with no crossings, is still broken, as it is two pipes separated by the line space height.

    Oh, did you mean the points that represent actual commits? You’re arguing it’s trash because there’s no line between two adjacent commits? Really?

    No, I’m saying it’s trash because it CANNOT do something basic like drawing a continuous vertical line, because it is hamstrung by using the interface of a typewriter. A git branch is just one readily available example of a situation where something extremely basic like drawing a continuous line would make sense.

    You’ve brought it up multiple times now so I think it’s time you also source that claim. Cmon, source the claim where the code editor with better visual fidelity increases productivity.

    I can’t cite internal market research that is under NDA. I can point you to basic courses on design and UX, point you to information on concepts like cognitive overload, and point out to you the multiple trillion dollar software companies that got to where they are entirely through paying attention to little UX details that backend nerds previously claimed didn’t matter and were user skill issues.

    Yes, terminal can’t do everything, but I don’t think anyone is using VS code to look at a cube either. Actually, I’m not even sure if there is a VS code extension that draws cubes? So you wouldn’t use VS code for that either.

    Bruh, why would you even try and talk out of your ass like this? I am literally using jsCad and VsCode to do my personal 3d printing modelling, and I literally got my start programming using first VS, then VSCode, to build 3d modelling software for Autodesk. Not sure if you’re aware of this but modern websites have this little thing called WebGL that lets them display these little things called jraphics.

    Again, VsCode can do everything VIM can do, but not vice versa.


  • masterspace@lemmy.catolinuxmemes@lemmy.worldVim > VSCode
    link
    fedilink
    English
    arrow-up
    1
    ·
    8 days ago

    and if I do not want the GUI part, how come it surprises you that I do not use that superset?

    Go ahead and represent an arbitrary 3d shape using the command line, suddenly you may realize that a typewriter’s interface isn’t the fastest for accomplishing every programming task.

    Regardless, you can be happy with a limited subset of functionality and trying to cram every interaction into text, that’s not an argument that that way is better or that a new dev should go that route, just that you can get by using that method.


  • masterspace@lemmy.catolinuxmemes@lemmy.worldVim > VSCode
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    8 days ago

    I said continuous vertical lines and literally posted a screenshot of it not being able to do it.

    It’s functionally the same visual representation of data so you’re literally arguing over it not looking like you want it to look.

    No, it’s not. The human brain does not process dashed lines as easily as it does continuous lines. A whole bunch of dashed lines are objectively harder to follow than continuous ones.

    You can think that’s not important, but the literal decades of UX research and attention to fine grained user interaction, can prove that you’re just flat out wrong.

    You look at the above and think they’re the same, but they’re fundamentally not. Literally just go ahead and try and visualize a basuc cube with this base point and dimensions through a CLI and watch that wow, maybe a fucking typewriter interface isn’t the best for absolutely everything:

    Cube([0.37, -300, 45], [37,-98,-100])


  • masterspace@lemmy.catolinuxmemes@lemmy.worldVim > VSCode
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    8 days ago

    No, the conclusion I’ve been saying is that CLI developers are smart people who have spent a long time memorizing commands to get fast at things that can be done quickly and intuitively through basic 2d graphical interfaces.

    They’re now either in a situation where the gains from learning the new process aren’t going to outweigh the costs (though still doesn’t mean anyone else should follow their path), or they would, but they’re just stuck in their ways because of sunk cost fallacy.




  • masterspace@lemmy.catolinuxmemes@lemmy.worldVim > VSCode
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    8 days ago

    But the VSCode plugin ecosystem still lacks some features available in the Vim ecosystem, and (fl just for example)

    Isn’t that basically the same as Command Shift P and / or the search feature?

    At the end of the day, the biggest difference is speed. Even very brief unexpected delays can break my concentration. While VSCode is no slacker, it still has some delays, probably mainly because it’s still JavaScript under the hood.

    Once there’s a GoLang, Rust or C port of VSCode, I may well switch permanently.

    I can 100% understand how big of a deal speed delays can be, but at the same time, not to probe too hard, but what are you experiencing delays in? In all honesty waiting for ohmyzsh to start, or waiting for a git pull to run, takes far longer than any task I can think of in VSCode. Files open faster than notepad, the file browser is fast, the shortcuts and commands are fast, I honestly haven’t experienced any slow downs with it anywhere, and I’ve used it with monorepos that are TB in size.


  • masterspace@lemmy.catolinuxmemes@lemmy.worldVim > VSCode
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    1
    ·
    edit-2
    8 days ago

    Literally not, since I’m advocating for a superset of what they are.

    I use command line tooling perfectly happy within VSCode, they don’t use graphical tooling within VIM.

    I’m literally just advocating for a toolset that lets you use graphics or a cli, depending on what makes most sense for the task at hand, they’re advocating to only use the cli.


  • masterspace@lemmy.catolinuxmemes@lemmy.worldVim > VSCode
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    8 days ago

    Sure, if the only criterion you are trying to fulfill is “have as many options and different ways to complete the task at hand as possible,”

    Except that’s not what I’m saying.

    I’m saying it’s important to have the right tool available for the job.

    If you limit yourself to VIM and command line interfaces, it will mot matter if a GUI is the right tool, it’s not in your tool chain, you can’t use it.

    i.e. I don’t use VSCode because it provides me with multiple ways of viewing git’s branching history, I use it because it provides me with the better way of doing so. And when the better way of doing something involves using the command line, it lets me do that too.

    People insisting on using the command line for everything is like a carpenter that only buys a circular saw and refuse to buy any other saws. Like yeah, you can do almost any cut with a circular saw, and it’s not a bad place to start, but theres a reason professional carpenters who need to do repeated cuts quickly, accurately, and in a way that is teachable to others, don’t limit themselves to a single type of tool for every scenario.


  • masterspace@lemmy.catolinuxmemes@lemmy.worldVim > VSCode
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    2
    ·
    edit-2
    8 days ago

    Getting an automatic terminal window when you start up vs code is no different having two panes in tmux, one for VIM and once for terminal.

    Yes it is, and I honestly cannot fathom how you cannot seem to comprehend the difference between text, and an actual pleasant to use and look at graphical interface.

    Lazygit looks exactly as trash as the OOTB command line git. How do you not understand that the human brain processes a smooth connected line more easily than a pseudo line broken up by the line space height, made out of pipes and slashes? This is like product design and UX 101.

    Again, VSCode does everything VIM does. Not vice versa, one is a superset of the other.


  • masterspace@lemmy.catolinuxmemes@lemmy.worldVim > VSCode
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    2
    ·
    edit-2
    8 days ago

    GUI has objectively way more visual noise

    Nope. You can open up VSCode and just have it open to a terminal window if you want.

    A GUI + Terminal gives you more options than just a terminal. It’s not complicated and it’s not arguable, one is a superset of the other.