Sublime Forum

First impressions are very frustrating

#1

Interface is great, has all the features I need, but is not properly set up out of the box.
I’m coming from the Geany editor and using Python. That editor lacked few features I wanted but I used it for few years and never had issues with it finding Python installation on Windows and properly executing the scripts.

I got Sublime today, and wasted my whole Saturday trying to to just set it up to use Python (3.7.9) properly on Windows 10.

  1. The default build system for Python is just wrong. Python on windows is not executed with “py” but “python”. What kind of Python are you guys using that works with that build system? I’m on Windows 10. I didn’t initially check that as being the issue as I assumed there’s no way that could be the issue.

  2. I’m not able to modify any stock build system. There’s some online answer claiming you can, but the official files don’t seem to be in a user accessible folder and I can’t find any info on that online, only the ones you create seem to be accessible ( in “C:\Users\User\AppData\Roaming\Sublime Text\Packages\User” ). First, why in AppData? You’re not supposed to access this folder usually, this is where program data you’re not supposed to edit are, for user modifiable files you usually use the Documents folder.

For comparison, let me show you how you specify how to build/execute in Geany:

2

You just type something short in a text entry. Done. No need to have all the entries in a single text file, no need to differentiate between stock build settings and user defined ones, and no need to have them as separate files. Simple, and took me a minute, actually not even that, because Geany assumes Python command is “python”, not “py”.

  1. So I need to create an extra “My Python” build system to be able to use Python with Sublime. The issue here is, I’m not just using Python, so I need to set the build system manually for each project and can’t have it set to automatic, because the default Python build settings don’t work and visually it doesn’t look like I can set only other languages to Automatic build system usage.

If anything from points 1-3 is not true, then sorry, but there appears to be zero proper documentations on them and I had to learn it by trial and error and wasting hours, for something this mundane.

So overall, pretty bad initial impression.

0 Likes

#2

The official Python installer downloaded from https://www.python.org/.
See why py is chosen rather than python: https://github.com/sublimehq/Packages/pull/2379

I’m not able to modify any stock build system. There’s some online answer claiming you can, but the official files don’t seem to be in a user accessible folder and I can’t find any info on that online, only the ones you create seem to be accessible ( in “C:\Users\User\AppData\Roaming\Sublime Text\Packages\User” ).

Usually, you won’t “modify” built-in files. If you do, you have to do that after every ST (Sublime Text) update. In ST world, you do override by creating a same name file in the same folder structure (e.g., Sublime Text\Packages\Python\Python.sublime-build). There are some plugins to ease this overriding process:

Or for build system, you can just add another one rather than override an existing one.

First, why in AppData? You’re not supposed to access this folder usually, this is where program data you’re not supposed to edit are, for user modifiable files you usually use the Documents folder.

Not true. Almost literally ALL user data of apps on my PC live in AppData\Roaming and AppData\Local rather than Documents folder. Or maybe I am just really lucky to choose apps to install :slight_smile:

For comparison, let me show you how you specify how to build/execute in Geany: …

ST has no UI for configurations. You have to look its docs or an existing configuration file. SM (Sublime Merge) has some UI for configurations but that’s quite limited. I agree this is not friendly for some people, especially for beginners.

So I need to create an extra “My Python” build system to be able to use Python with Sublime. The issue here is, I’m not just using Python, so I need to set the build system manually for each project and can’t have it set to automatic, because the default Python build settings don’t work and visually it doesn’t look like I can set only other languages to Automatic build system usage.

The automatic build just chooses the last one used for your language iirc.

0 Likes

#3

I admit, I use the Python that comes with Panda3D engine, and it by default makes its Python the default Python. And it only contains python.exe. Who knows how many other tools have this issue.
But in any case, doesn’t this mean current Sublime Text does not support < Python 3.3 ?

That’s my point, it should not be a built-in file that you cannot access and edit. Any other program will have configuration files in the Documents folder (or AppData, if not meant to be edited by the user), and new versions will not override those files, will just reuse those configuration file. It will overwrite those files or use new files in a new subfolder when the new version breaks old configuration files.
This is how every other tool I know does things. While Sublime Text makes it a built-in and it’s not even easy to check their content, to slightly modify for your custom build system.

EDIT: And another issue with this approach: suppose a new version of Python or any other interpreter/compiler changes things again, it means I can’t use the current version of Sublime Text with it anymore, unless I use a custom build system again, which again makes the “Automatic” build system option not usable. Another reason why configuration files shouldn’t be built-in/inaccessible.

As I mentioned, data which you are NOT supposed to access can be placed there, but otherwise no, you don’t place data which the user should access and modify there. Simplest proof: AppData is a hidden folder on Windows by default.

That’s my point, it’s very inconvenient to just get your interpreter set up with it.

Like I mentioned, the difficulty of finding that info in the docs isn’t helping either. And besides, if I have to dig into the docs for something as mundane as setting which interpreter to use, then maybe the tool doesn’t have a great UX.

Not the case here. If you chose your own “My Python” build system, then switch to “Automatic”, Sublime Text will try to use its built-in Python build system again.

0 Likes

#4

Python 2 and even 3.3 are end of life. Syntax still works.

As ST’s build system is made primarily to print compiler output and therefore doesn’t accept user input, it can’t be used as REPL or interactive python console anyway.

Documents folder is meant for user documents only - not for settings or any other kind recources needed to extend or configure an application. This is convention since Windows NT4. It was only Windows 95/98/ME which stored settings in Documents folder. Unfortunatelly several apps/games continued messing around with that directory even after WinXP was introduced.

Unfortunatelly today’s pseudo web apps start even messing around with that convention by adding .blblbl files and folders directly into a user’s profile directory - terrible!

The AppData folder is the very correct location for all of ST’s user specific extensions/packages and configuration files as none of them represents user documents which is worked on primarily.

I clearly remember having the same pain points when starting with ST 6 years ago. It needs some patience and investigation to understand its basics and concepts.

ST is an an advanced code editor for pros. ST is meant to be a lightweight minimal and fast alternative for all those bloated slow IDEs out there. It therefore expects its users to be able to edit text files, which is inline with how all modern webapp related frameworks need to be configured. Everything works by editing config files - mainly json or yaml. See how Github actions are implemented - just by YAML.

I’d suggest PackageDev which comes a long with various helpers which make editing ST’s configuration files a charm. You may also want to try LSP together with LSP-json which may provide even better context sensitive completions in various situations.

Note: I always start crying when starting ST in SAFE MODE and need to edit settings without PackageDev being present :smile:

0 Likes

#5

Firstly, thanks a lot for going thorugh the points and being helpful. My message is not about being unthankful and wanting to start an argument. But I do want to make these issues very clear. I like Sumblime Text a lot so far and these are just ugly pimples on it, so I talk about it because I care about it.

And yet you can’t expect every user or SDK to upgrade to it. But that’s not the main issue here, if we were clearly shown that the issue is that we use old Python, that’s another thing. But the issue is because of Sublime’s current UX regarding setting up build options, you may end up spending hours digging throught he internet trying to understand what the issue is. You’ll lose a lot of potential users because a lot of people won’t give anything “a try” if the first impression is so frustrating. This end result is what should have priority here, not conventions, standards, EOL/other labels, etc.

Documents folder is meant for user documents only - not for settings or any other kind recources needed to extend or configure an application. This is convention since Windows NT4.

And yet so many don’t follow it. So why does a convention by Micro$osft matter more than practicality? I think if Sumblime devs agreed with everything MS does, they wouldn’t feel the need to create their own code editor and would stick with VS. I see this problematic line of thinking with devs a lot: unquestionable acceptance of every man-made convention and giving it priority over practicality and user experience.

Ignore the convention for a moment. User acessible files are stored in a folder which by default are not accessible by the user, because they are hidden folders. This is against common sense.

This is just seems like being defensive over a bad UX design.
I see this a lot with a lot of tools. People get used to it, then start defending the tool of their choice over every valid criticism. The point is is it doesn’t have to be this way. The point is it’s pointlessly difficult, which costs it users, for no valid reason.

I hear these kinds of arguments for seasoned users all the time as well. Being pro does not mean you prefer inconvenience over convenience. Just because you can get used to the inconvenience, doesn’t mean it has to be there. Being pro doesn’t mean UX doesn’t matter to you.

Again, there’s no reason it should expect this. This is the exact same issue that drove millions away from Linux: expecting them to use the console for installing stuff. Just because I can work with the console, doesn’t mean I don’t want GUI.
When everyone else does something a specific way, and everyone else is used to that , it’s worth rethinking the current approach. Otherwise you’re being a hipster.

But again, thanks for the help.

0 Likes

#6

If you want to do a feature request for GUI for configurations. You can file an issue on https://github.com/sublimehq/sublime_text/issues/new?assignees=&labels=&template=enhancement_or_feature_request.yml

0 Likes

#7

Okay, done. Thanks

0 Likes

#8

Sorry, but all .files and .folders are hidden in linux as well. Do you seriously want to teach us not to store any configuration file in such directories? See how configuration of all kinds of programs is stored in ~/.config folder in Linux, which is the defacto pendant of Appdata.

Sorry, but you seem to got stuck in the 90s.

0 Likes

#9

It indied does. But the screenshot you published about the build system configuration dialog doesn’t provide any value IMHO. It just looks terrible and provides nothing more than a plain key value file, which is faster to write with some auto-completion support.

0 Likes