Sublime Forum

How to bring back Sublime Text

#21

I see, I understand now what you meant, make sense… on the other hand, I guess if the project was something you’d really like you’d be willing to give it a shot, wouldn’t you? Let me put you an example, few days ago I knew 0 about rust myself and when I was exploring my choices in order to come up with a SublimeText standalone widget I discovered syntect thanks @OdatNurd suggested me this library in some SO question I’d opened… after that suggestion I just logged at #rust@moznet and started asking questions about rust… Few days later I’d brought to life my first rust hello world project https://github.com/brupelo/pysyntect, which is of course shitty code as I’m a total beginner at rust but my point is, because I liked a particular project it wasn’t a big deal to me to learn a new programming language (if only the very basics)… So I think the key here is you like enough some idea to be willing to invest your time escaping from your comfort zone :slight_smile:

I saw articles about Linus blamed those who submit shitty patches to the Linux kernel (I just Google it to get one randomly).

Well, I don’t really like bossy people like that who dismiss others efforts that way… even if it’s from a position of authority or even if they know everything about a particular piece of code (in this case, the linux kernel)… It’s people who’s contributed to your project for free! and you’re saying rude things like that? Not cool at all… I think my approach of engaging people to contribute into your project is much better in the long term. Otherwise eventually a lot of talent will escape from the project, company, team…

Anyway, I think the key to eventually come up with good products is having a nice Mood in the team, do you prefer 1 uber-coder who’s burned out or 10 normal ones happily motivated in what they’re doing?

I had heard a joke from a Chinese forum that says C++ is so complex nowadays that even Bjarne Stroustrup wouldn’t claim himself having mastered it.

A joke? I thought that was quite the truth though :wink:

0 Likes

#22

Yes :smile:. This reminds me that why I started leaning PHP. It was really a funny adventure when I found a interesting/useful idea and decided to fulfill a small craft begin from 0 knowledge.

People would like to have friendly fellows for sure. But if high code quality is required in a open-source project, capable contributors would be less. We can friendly indicate people what they should do to make their codes on the right track, but “making a indication” itself and wait for they learn and then modify their patches (sometimes never happens) could be a cost too.

Sometimes people may submit a fantastic idea with an “inappropriate” (shitty is too rude :slight_smile:) patch, we give them some hints rather than re-implement the idea by ourselves for not deprive them of the feeling of achievement. You or other people may want to implement the idea immediately but it may be a little offending to the original patch provider (eh, maybe) so people just wait for him/her. For a big project, he/she may or may not be able to finish the PR after a long time. The productivity may be lower in an aspect of view.

For example, there is a PR which is a fantastic idea in my opinion (RFC for the ??= operator) for PHP. It was submitted in 9 Mar, 2016 originally. I remember there was another person who wanted to take over that RFC to gave it a try after the original PR author seemed to be inactive after a long time but I cannot find it now. Eventually, after almost 3 years, the RFC is implemented by a PHP core member himself recently 16 Jan, 2019. It may be done in weeks or maybe days if the the core member did not waiting for other people try to implement it and eventually people couldn’t and one of them implemented it by himself. But it would be a good leaning experience for people who tried to contribute to a project though.

1 Like

#23

Quite a lot of really interesting points you’ve brought here, ty! let’s see :slight_smile:

We can friendly indicate people what they should do to make their codes on the right track, but “making a indication” itself and wait for they learn and then modify their patches (sometimes never happens) could be a cost too.

Well, let me give you my vision about it… First of all, I’m a big advocate of plugin architecture based systems… one of the many advatanges about these type of systems is the fact you don’t need to “indicate” anything to people other than providing proper plugin interfaces and proper docs about how the plugin architecture works… you’re killing 2 birds with 1 stone as basically your software becomes extensible and it’s highly unlikely you need to reject people’s contributions. Why? Think about it… you’ve decouple the whole system nicely and therefore team splitting has been done, easy peasy :slight_smile:

Of course, sometimes you’ll want to avoid the overhead of adding a plugin system to your software and just providing the right extension points may be “good” enough.

The worst case is when 1 or more people need to work on the same piece of code (also known as patching), which is I guess the situation you’re talking about and yeah… this case is tricky as the contributors will need to learn about the system itself to make the right patches. I think the key here is having a good management issue tracker that allows good team syncing instead coming up with PRs out of the blue…

I think the best way to deal with this last case is providing proper docs that should explain users how the code should look like… on the other hand, you don’t want to force users neither and constraining their creativity… At the end of the day, the goal is coming up with good systems and getting the BEST out of coders… :confused:

Sometimes people may submit a fantastic idea with an “inappropriate” (shitty is too rude :slight_smile:) patch, we give them some hints rather than re-implement the idea by ourselves for not deprive a feeling of achievement from them. You or other people may want to implement the idea immediately but it may be a little offending to the original patch provider (eh, maybe) so people just wait for him/her. For a big project, he/she may or may not be able to finish the PR after a long time. The productivity may be lower in an aspect of view.

Really interesting what you’re bringing to the table here… the feeling of achievement is definitely one of the most important factors (we’re talking about free open-source, so money is not involved here). I guess the “feeling of achievement” can be considered more generally as “having FUN” in coderland :slight_smile: . I guess I should talk eventually about it here eventually.

Anyway, I guess more important than this feeling of achievement though is the feeling of being part of a team or community, don’t you think? On the other hand, one of the thing coders like the most is users enjoying/using the stuff they’ve put love and care into, isn’t?

But it would be a good leaning experience for people who tried to contribute to a project though.

In any case, I mostly agree with all you’re talking about overall… I think one of the most important factors to become a good leader/senior/manager is being able to get the best out of the team members… I don’t have a clear idea how to do that though as I’m not a good team player myself so that’s a skill I’m trying to learn as I go… :slight_smile:

Thanks for your comment, really insightful and valuable ideas you’ve provided here… I will definitely need to think more carefully about to see what’s the best way to deal with all of it.

Ps. Sorry for the spread thoughts, as you can see this is a subject that really interests me… hopefully we’re not going offtopic too much here though :wink: . What was the topic? Ah yeah… somebody said Sublime is dying… can’t believe it! holly moly! :smiley: … Just kidding

1 Like

#24

Some of these requests have solutions or plugins that address the need.

Detect unused variables
Code will grey out methods, variables and imports that are not used within your code snippet which allows us to keep our code-base tidy.

I’ve found linting using SublimeLinter works for detecting unused variables, at least.

Able to drag to split window
You are able to drag your tabs across your canvas to split the window as many times as you want.

I don’t know about dragging tabs to split windows, but I’ve found the Origami plugin solves nearly all of my window splitting needs, and the MaxPane plugin solves the other (being able to maximize a pane and restore previous pane sizes).

Integrated Terminal
Able to create multiple terminals within your vs code instance with a click of a button and tab through them. Bash/CMD/Powershell

The Terminus plugin gives me a useful terminal to whatever I need.

Search tool
Search tool is a lot easier to use which is similar to Sublime’s “find tool”. Gives a better visual with live changes when you update files. In addition, the ctrl + p search that’s found within sublime is a lot more intuitive within vs code because code is able to auto-detect what’s in your .gitignore file and does not query those results. For example, sublime will still perform file searches within ‘node_module’ folders.

I believe the latest version of ST will respect your .gitignore, and if you don’t want to search or even see node_modules, you can add it to the folder excludes in your project file:

{
	"folders":
	[
		{
			"path": "/C/your/project/path",
			"folder_exclude_patterns": ["node_modules"],
			"file_exclude_patterns": ["*.iml"]
		}
	]
}
3 Likes

#25
  • Addons: Those seem very specific to your internal toolchain. I wouldn’t expect something to exist publicly, but writing your own plugins is surprisingly easy if you know a bit of Python and how to integrate it into ST. You can even distribute internal packages using Package Control.
  • Superior auto-complete: https://packagecontrol.io/packages/LSP
  • Detect unused variables: https://packagecontrol.io/packages/SublimeLinter
  • Right-click view references on javascript and typescript functions: Also LSP for context-sensitivity, but supported natively through hovering on a symbol.
  • Auto import when writing Angular (typescript): https://packagecontrol.io/packages/ImportHelper (and more candidates)
  • Able to auto-detect if a .html file is a ngx (angular) or vanilla html file: https://packagecontrol.io/packages/ApplySyntax, maybe?
  • Able to drag to split window: Sounds like a useful request, though not of high priority.
  • Integrated Terminal: https://packagecontrol.io/packages/Terminus
  • Search tool: This complaint is a bit wild, so I’m skipping it.
  • Debugging tools: There is work towards a package that implements a standardized debugger protocol currently, but it’s not ready for consumption yet, I believe. ST’s interface support for this isn’t ideal, but it is workable.
  • Live Share: https://packagecontrol.io/packages/Floobits provides this, although as a paid service. I’m not aware of an alternative.
  • Settings are all guis with search capability: https://packagecontrol.io/packages/PackageDev makes setting management much easier with completions, helpful tooltips and even a quick “edit this” button. It’s not a full-blown GUI, but it’s a compromise and it’s doing a good job at that, imo. The only thing it doesn’t have compared to setting GUIs is categorization through tabs.

As you can see, almost all of the shortcomings you list are already solved or have at least a workable solution to them through third-party packages. This is good because:

  1. You probably have a different set of requirements in your environment than others and enabling/providing all this by default would be bloat for those.
  2. The API is flexible and provides many hook points that allow for these additions.

Your proposal of gathering companies or sponsors to support developers devoting time to maintain Sublime Text financially is interesting, but not exactly certain. As long as the current model works, there isn’t a compelling reason to change it.

11 Likes

#26

This is absolutely amazing. Thanks for taking the time to compile this list! The company backing, etc is still something to consider.

However, we’ve gone down the route of trying to build/add whatever is missing into this project. Maybe you’ll see some of our stuff appear on package-control :slight_smile:

3 Likes

#27

I think you guys have made the right call here… you’ll see why in the middle/long term :slight_smile:

Good luck!

0 Likes

#28

One of differences between Sublime and VSCode is that Sublime is developed and maintained by individuals and VSCode is by a huge company Microsoft.
Microsoft may not need to make money from VSCode but Sublime’s developers should. If the developers open source this project, the developers may no longer earn enough money to maintain Sublime (see StarUML for an example).
A good ending is that MS buy Sublime and the entire team, but it may not be happen.

0 Likes

#29

I feel the urge to comment upon this cos actually is quite interesting. I think it’s true what you say about “Sublime is developed and maintained by individuals and VSCode is by a huge company Microsoft.” but let’s not forget about something quite relevant here also…

We should consider SublimeText as a whole “infrastructure/system”, said otherwise, Sublime’s value is not only provided by Sublime’s developers… of course, we all should agree that’s the most important piece of the whole system but we shouldn’t forget about the whole community who’s added value to SublimeText over the years since it was born: awesome docs, tons of packages, issues, marketing Sublime by spreading the word/linking, even commenting on this forum is adding value to SublimeText as a product…

In fact, I think is a mistake considering Sublime just a the closed-source parts maintained by the core-devs… cos a plugin architecture system is the type of software where without having available a single plugin has a “0-value”, that’s just a fact :slight_smile:

And again, to me, having 1 or 2 talented guys maintaining those close-source parts is quite a good strategy actually… adding more devs to those subsystem could produce negative results, even if you open-source advocates would claim it won’t… Just speculating here though :slight_smile:

Ps. StarUML was a nice piece of software idd

1 Like

#30

Hold on… at which point StarUML turned into commercial? I recall many years ago this software was open-source and free… in fact, If I search on my old disks I probably keep the old sources… I recall at that time the source of this software was extremely nice and well-architectted… that’s why I told in my previous comment “StarUML was a nice piece of software idd” :open_mouth:

0 Likes

#31

Yes, you are right about the StarUML. It initially an open source software and the only way to get money is by donation. However, the team decided to closed source it since v2 and made it commercial because they can’t get enough money by donation. You can find this saying in the software’s website.

Regarding Sublime Text, personally I have the same wish as you, open source, contributed by the whole community, etc. But as a developer, I would respect the developer’s desicion. Developers need to eat before they work. Hopefully they will make it open source min the future if they wish. But we should not demand it.

0 Likes

#33

I don’t care for open sourcing Sublime Text, but I feel held back a little in recent days…

  • full Javascript and DOM debugging built in.
  • full preview of web content

I know this comes by way of the used backend. But it is an obvious example, so I had to add it, since you asked (not OP here).

I test VCode since a few days, so I did not yet see much of it. It sure has a lot of sugar, like Red Hat, IBM, GitHub, Salesforce, Adobe, Haxe Foundation, Google, Samsung and Microsoft constantly developing plugins for it. Or like the inline HTML rendering. Big company support is outside of Sublime’s reach, competing with such huge corporations is impossible for Sublime’s team (but brings a lot of people to the platform, since it adds quadzillions of possibilities), second is not something I would need, especially if getting such a rich editor component would make me lose the fast and efficient one of Sublime (a few years back I read a comparison of text editors, and how well they handled huge files. Sublime was (one of) the best). No need for change here.

However, as projects grow, a simple editor is not enough. Some common IDE features, without going the full IDE route, would be desirable:

  • Freely programmable side bars (tree view) with incremental search and programmable cursor position. I want this to show trees for:

    • JSON, XML, HTML CSS
    • XSL stylesheets and XQuery modules and their imports, variables, templates, functions, etc.
    • build targets
    • hierarchy of classes, functions, methods, etc.
    • hierarchy of complex projects
    • dependencies
    • etc.
  • source aware autocomplete (I know, there is addons, but this should be built in, since managing plugins, keeping track of them, learning them (and relearning their configuration, after one has been abandoned and a new one came along, is tedious). It should work like Intellisense or the likes, that it is aware of current context.

  • an HTML component, that can be opened as a resizable sidebar and which keeps auto updating the text, that is entered in the editor next to it. Let’s me preview

    • CSS
    • HTML
    • SVG
    • Markdown
    • Git branches
    • etc.

For these things I would just ask for a framework, a common entry point. Implementations for langauges and styles could then be done by the users.

As a user, who would like to keep using Sublime I am also interested into its forthcoming existence. I invested so many hours into set-up and configuration and now I depend on it. And it’s not like I am getting younger and gain more time. I’d be glad to shill out some more money on a Kickstarter or so, but I want to be able to use Sublime more efficiently (currently I am eyeing with getting an IntelliJ license or to invest time into writing/contributing (to) VSCode plugins - I am doing mostly XML and EcmaScript development, therefore I may be served better at another place. But I’d hate to give up on SublimeText!).

0 Likes

#34

This is yet another post about the endless eternal debate… “this software doesn’t work well for MY particular case…”

I’ve expressed my opinion about this controversial subject few times in the past but let me try again, objectively speaking users needs are pretty much different, what you consider a must feature-set so you may become productive won’t be the same for other users.

Plugin architectures like Sublime priority is always to find the common ground that satisfies the whole set of users so the key here is they provide a common denominator of features/API to cover the whole problem space.

Let me express it mathematically. Let’s say a software is used by N users, each user having different needs/requirements.

S = {U1:R1, U2:R2, ... , U_n:R_n}, problem space
U = {U1, U2, ..., U_n}, users
R = {R1, R2, ..., R_n}, requirements

Theorem (not really :slight_smile: ): To make everybody happy a particular software needs to cover S, which means to make happy U by providing mechanisms that satisfy R

Now, how to acomplish that? Well, in the first place your software has to provide the minimal common mechanisms to cover R space. Why minimal? Because otherwise you won’t cover R succesfully.

Why you wonder? In your post you’ve claimed it’s fundamental to provide certain tools so you may become productive… you’ve claimed you’re doing XML and EcmaScript development… good, so you’ve rightfully ask for tools to satisfy all your needs so you may become productive, now… if all those features you’re asking for would be provided out of the box by SublimeText a problem would emerge and Sublime wouldn’t be covering R any longer… as not all coders are web developers.

The way Sublime is architected is alright as it’s allowing with more or less effort to cover R… so mathematically speaking if you added more features out of the box you wouldn’t have all people happy anymore.

For instance, let me put you an example… let’s say ST added that bunch of features you requested in your previous post out of the box… by doing so a lot of people would get annoyed because those features would be unnecessary to them.

But I’d hate to give up on SublimeText!).

But don’t get me wrong, the point here is… SublimeText already allows to make everybody happy but of course you’ll need to put effort on customize it for your particular needs through:

a) finding existing packages
b) creating new packages yourself
c) finding people who share a common goal of customization and sharing the workload to create those packages

Summing up, in SublimeText U=Coders and by constraining that into a more specific subset you’d be doing it (mathematically speaking) WRONG :slight_smile:

2 Likes

#35

I forgot to mention this statement is just a falacy… 1) SublimeText is not a “simple editor” 2) I’m coding large projects at the same time using multiple different languages and for me is more than good enough :wink:

1 Like

#36

If not needed, don’t switch it on. And be happy, that those, who need it, are happy, too.

  • better AutoComplete

    • Sublime CondeIntel has 1.4m installs
    • All Autocomplete has 803.000
    • with all other such plugins adding another, approx., 2 million, that come up when seaching for “autocomplete”
  • SidebarEnhancements has > 2 million installs

  • Emmet 4.19M
  • HTML5 1.25M
  • Sass 1.03M
  • jQuery 980K

And let’s not talk about those many, many, many people, who have abandoned Sublime in favor for VCode. Add just a third of them to the numbers!

(Besides, I am not a web developer. You’d be pressed hard to find any XML on the web, these days, and EcmaScript is being used everywhere today.)

I don’t think, a framework for applying a side pane displaying hierarchies of

  • (semi-) structured documents
  • objects/classes
  • functions and constants
  • titles, chapters etc. in documents, which provide it
  • generic outlines (notes, etc.)

would annoy the majority and be “unnecessary” to them? And since we talk about plugin API support for these, it’s upon you, whether your plug or not.

Sublime (anc VCode) belong to a domain, that I consider the “High End” of the software market. That is the thin tip of the mountain. If you do not keep providing, you will fail, pushed to the side by others.

I don’t see any valid technical reason against:

API extensions for sidebar trees and code intel, where plugin developers get a unified and well controlled entry point, making all these extensions more streamlined.

0 Likes

#37

Sure there is: it requires non-zero amounts of code, effort, knowledge and maintenance.

Your examples of plugins with lots of installs just illustrates that the plugin architecture and eco system works. Not that those feature should be in the core application or that their functionality would be improved by such.

If you so require code intel and debugging, why don’t you use a product that features what you need? We have reached a point where there is choice. You don’t need to use an enormous pain in the ass IDE for those features. And you don’t need to stick it out with a skimpy editor either. I don’t want 4 wheels, a roof and an engine on my bike, and I don’t need a 21 speeds derailleur in my car. Sure, sometimes I sit and my car and I miss the wind in my hair and sometimes I ride my bike in the rain. Doesn’t mean either is doomed to go obsolete any time soon.

3 Likes

#38

For those, who may have come by this topic because they searched for “sublime programmable sidebars” (or the like), here is an interesting issue I found:

@wbond writes in that issue:

[…] I am just as interested as you are for a sidebar API. […] A sidebar API would be unlikely to modify existing functionality of the Folder tree. Instead, it is more likely there would be the ability to create a custom tree.

It seems, it may become a reality!

0 Likes

#39

Personally speaking, I’d appreciate a little more robustness over new features.

I came to ST from Vim because multiple cursors & Ctrl+D beat the absolute hell out Vim regex matching. Over time, it seems as though ST has become more crashy and RAM-hungry–even though I’ve been doing the exact same things with it for nearly a decade. Feels as though it became especially brittle in the move from V2 to V3.

Competing with VSCode on “autocomplete everything” seems like a losing battle–especially if the ST guys have to make a living off of the thing. Meanwhile, MS makes so much off of xbox/azure/office/etc that whatever they’re spending on VSCode is probably noise.

I’d gladly buy another ST license, or even pay for a subscription model, if that gave the guys enough cash to make ST a little more solid.

2 Likes

#40

Please don’t make Sublime-Text another microsoft resource hungry software. If you really need/want this type of software, code seperate Sublime-Studio version and leave Sublime-Text be :slight_smile:

1 Like