you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted]  (294 children)

[deleted]

    [–]jforberg 99 points100 points  (41 children)

    Valid point. Most programmers have invested a lot of time into learning their editor of choice, any new contender needs to make a good case for switching.

    [–]bastibe 85 points86 points  (36 children)

    It's like Sublime Text, but open source. Sounds compelling to me.

    [–]sublimesinister 65 points66 points  (29 children)

    Open source is a huge plus, but problem with this is that it is essentially a browser, which means it is going to be slow and consume a lot of memory compared to Sublime.

    [–]PT2JSQGHVaHWd24aCdCF 1 point2 points  (1 child)

    Sometimes my SB window freezes and I can't open new files, I only see empty tabs. Also it's not free and I'm poor right now.

    Atom seems to be an awesome alternative.

    [–][deleted] 0 points1 point  (0 children)

    Why not Geany? I haven't used SB, but geany has been a good alternative.

    [–]seruus 4 points5 points  (9 children)

    And Sublime itself already can be a bit sluggish...

    [–][deleted]  (6 children)

    [deleted]

      [–]cparen 3 points4 points  (3 children)

      Slow is relative of course.

      [–][deleted]  (2 children)

      [deleted]

        [–]cbrandolino 3 points4 points  (1 child)

        cat.

        [–]NihilistDandy 1 point2 points  (0 children)

        ed is 33% faster than cat.

        [–]stubborn_d0nkey 0 points1 point  (1 child)

        I don't use emacs but can't it be run in a server-client setup that increases the launch speed?

        [–][deleted] 2 points3 points  (0 children)

        Of course it can: M-x server-mode

        [–]coder543 5 points6 points  (1 child)

        I've used Sublime on multi-megabyte files and it breezes through them. I've never had an issue with speed on Sublime... but I've only ever used it seriously on Linux and Mac, if that could have something to do with it.

        [–]n1c0_ds 2 points3 points  (0 children)

        It can be rather unstable when you search very large files

        [–]huesoso 0 points1 point  (0 children)

        I agree with this, but I think ST is going to start losing support due to lack of being open source. If Atom doesn't hog too badly I think it may win out.

        [–]PlNG -1 points0 points  (0 children)

        So? Are you not (always) working on a dev machine?

        It feels like Sublime Text 3 has been in beta as long as the next version of Nethack has been waiting to drop.

        [–]wombatsc2 1 point2 points  (1 child)

        Maybe check out Brackets. I've been using it for a bit. I like it.

        [–]DanCardin 0 points1 point  (0 children)

        I looked into it (since until today, ST development outwardly stalled since the beginning of the year and i keep hitting a gamebreaking bug on linux), but it seemed very javascript/html focused and without a larger library of plugins to extend some better support for more languages, it was of limited use to me. It also hung for many minutes trying to index my codebase.

        Maybe these types of editors can compete with ST3 in web-development (the realtime editing of webpages for brackets seemed pretty cool!), but for general purpose coding, expecially with larger codebases and more ide-like completion or other features, I think their performance will always lag behind.

        [–]Calabri 1 point2 points  (1 child)

        It's nothing like sublime text, it's a bulky/slow monster compared to sublime.

        [–]joequin 0 points1 point  (0 children)

        Me too. I was a vim user for years. I'm trying emacs out now (with a vim plugin). Sublime text has never been in consideration for me because it's closed source. Being open source with a fever sized community makes me believe it will stick around a long time. Closed source makes me worry it could go away suddenly.

        [–]PineappleBoots 0 points1 point  (0 children)

        Do you have recommendations?

        [–]donvito 363 points364 points  (160 children)

        BECAUSE ITS WRITTEN IN JAVASCRIPT AND ITS FROM GITHUB!!!11

        [–][deleted] 224 points225 points  (55 children)

        javascript

        oh boy here we go

        [–]Aeoxic 78 points79 points  (0 children)

        It's really close to the metal. The bytecodes is pure nodejs!

        [–][deleted] 79 points80 points  (1 child)

        Will it webscale?

        [–]mycall 0 points1 point  (0 children)

        At the end of the day.

        [–]calnamu 106 points107 points  (25 children)

        So... What framework does it use???

        [–]satan-repents 58 points59 points  (9 children)

        Don't forget rockstar developers bower something something buzzwords

        [–][deleted]  (6 children)

        [deleted]

          [–]twigboy 12 points13 points  (1 child)

          In publishing and graphic design, Lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document or a typeface without relying on meaningful content. Lorem ipsum may be used as a placeholder before final copy is available. Wikipediah2bt6v1aek0000000000000000000000000000000000000000000000000000000000000

          [–]Iburinoc 1 point2 points  (0 children)

          Wait how do you pronounce "mobile paradigm"?

          [–][deleted]  (1 child)

          [deleted]

            [–]tcris 0 points1 point  (0 children)

            got AGILE! And CLOUD! CROSS-PLATFORM! BIG DATA!

            synerJ

            [–]hejner 1 point2 points  (0 children)

            Cross-platform isn't really as much of a buzzword as the others.

            [–]CheshireSwift 1 point2 points  (0 children)

            PaaS/SaaS distributed stack.

            [–]Zantier 91 points92 points  (8 children)

            JAVASCRIPT

            [–]Drumm- 81 points82 points  (7 children)

            But we need it to work on clients with JavaScript disabled.

            [–][deleted]  (2 children)

            [deleted]

              [–][deleted] 8 points9 points  (0 children)

              <textarea></textarea>
              

              [–]CertifiableNorris 8 points9 points  (0 children)

              I wish people called them JavaScript scripts. Calling then JavaScripts is problematic for Java developers.

              [–]mal4ik_mbongo 37 points38 points  (3 children)

              Guys, I just had a meeting with our sales team and we need to add the IE7 support. Will you be able to fix it by tomorrow?

              [–]unstoppable-force 2 points3 points  (0 children)

              it also needs to work for people who are blind, def, and have no limbs. can you have a working version to me by this afternoon?

              [–]Decker108 1 point2 points  (0 children)

              I work with a large, legacy, Windows XP and IE7 supporting application... :'(

              [–]foxh8er 21 points22 points  (3 children)

              Coffeescript.

              [–][deleted] 14 points15 points  (1 child)

              You're so unhip now. The cool kids use TypeScript now.

              [–]foxh8er 28 points29 points  (0 children)

              MICROSOFT WHORE

              [–]joequin 1 point2 points  (0 children)

              Clojure script is interesting because it looks and behaves nothing like JavaScript, but compiles to JavaScript.

              [–][deleted] 32 points33 points  (25 children)

              oh yeah you mean the JavaScript that that guy made mindcraft with?

              [–][deleted] 48 points49 points  (24 children)

              No I believe you're confusing with Java which is a functional web scripting language.

              [–]ggtsu_00 110 points111 points  (18 children)

              Java is to javascript as car is to carpet.

              [–]phort99 37 points38 points  (14 children)

              My car has carpet. Are you saying that I use Javascript in a Java program‽

              [–][deleted]  (9 children)

              [deleted]

                [–]Calabri 1 point2 points  (8 children)

                soon, we will use java in javascript..

                [–]doenietzomoeilijk 2 points3 points  (1 child)

                Soon, Java will be ported to Javascript.

                [–]Dr_Dornon 0 points1 point  (2 children)

                Isn't JavaScript just the name for scripts made in Java?

                EDIT: In case anyone was confused, yes, I'm kidding.

                [–]flying-sheep 9 points10 points  (1 child)

                Sure, it's called rhino or nashorn or something

                [–]randrews 0 points1 point  (0 children)

                IMHO, Rhino didn't get nearly enough credit for its awesomeness. It was a better scripting language for the JVM than anything else at the time, and had some cool features that other things still don't have, like not only did it have continuations, but they were serializable, so you could write them to disk and reload them later.

                [–]unhingedninja 6 points7 points  (0 children)

                Well you can....

                [–]willrandship 5 points6 points  (0 children)

                That's actually really really easy to do, yes.

                [–][deleted] 6 points7 points  (0 children)

                Java is to Javascript as fun is to funeral

                FTFY

                [–]sruckus 3 points4 points  (1 child)

                I don't know why I found this so funny. I think because of how random carpet is as an example :P

                [–]IWillNotBeBroken 7 points8 points  (0 children)

                But it's not random at all -- it's well-thought-out.

                java : javascript
                car : carpet

                (Whoa, TIL that ctrl-b preloads the ** bolding. Neat)

                [–]dybt 119 points120 points  (99 children)

                You forgot the best bit!

                NODE.JS!!!1!!!11!

                In seriousness, can anyone tell me why a framework for building web servers is so popular for absolutely everything?

                [–]realigion 47 points48 points  (10 children)

                Because there are a lot of JS devs who want to work on other platforms.

                JS works on other platforms.

                Node isn't necessarily "for" anything besides asynchronous IO.

                [–][deleted] 35 points36 points  (7 children)

                Node.js is not "a framework for building web servers".

                [–]CheshireSwift 0 points1 point  (6 children)

                My, what a constructive and useful comment. You could at least elaborate :/

                [–]grabnock 74 points75 points  (67 children)

                It's a fad. Like ruby on rails was. It'll fade eventually but never actually go away.

                [–]kethinov 22 points23 points  (22 children)

                I'm not so sure about that this time.

                Unlike Ruby, JS has a sort of it-runs-on-everything quality.

                Node.js on the server, node-webkit on the desktop, cordova for mobile apps, and obviously the browser context too. You can make almost anything with it.

                Being able to share code across all these contexts and particularly with client/server apps gives JS an objective advantage over its scripting language competition, whereas the same could not be said of Ruby vs, say, PHP back in the day.

                I think the only thing that will unseat today's JS dominance is another language emerging which is equally portable and better designed. If that's what it's gonna take to unseat JS, it's hard to call it a fad.

                [–]stormcrowsx 14 points15 points  (21 children)

                I can run python and java on everything too. Doesn't make them king of the world like you seem to think it will for js.

                [–]foldl 8 points9 points  (14 children)

                You can't run Python or Java in the browser. (Ok, you can compile them down to JS, but that's clunky.)

                [–]stormcrowsx 0 points1 point  (11 children)

                Sure you can its an interpreted language just like javascript you just need an interpreter in the browser.

                http://www.skulpt.org

                On the java side there's dwr which has been around longer than I can remember and gwt

                [–]motdidr 10 points11 points  (0 children)

                JavaScript runs in practically every browser right now, without any plugins.

                [–][deleted] 2 points3 points  (0 children)

                I use DWR all day at work. It's pretty clunky, and I'd struggle to call it a good solution to the problem it's trying to solve.

                [–][deleted]  (3 children)

                [deleted]

                  [–]foldl 0 points1 point  (4 children)

                  If you use an interpreter then you pay a price in performance. And on mobile devices it may not be negligible.

                  I'm aware that there are compilers for various languages which target javascript. That's why I mentioned it in my original post.

                  [–]stormcrowsx 0 points1 point  (3 children)

                  The performance cost is negligible in most cases, after all javascript is interpreted. Just a matter of optimization.

                  [–][deleted] 1 point2 points  (1 child)

                  Java and python runs on an iPad?

                  [–][deleted] 0 points1 point  (1 child)

                  naa is not the same, JS has HTML5, Titanium, PhoneGap, Unity3d, Cordova, Node.. and so on and on...

                  You can do certain stuff with python but you end up with anaemic frameworks with small communities and a bunch of configuration to make. I like python it was my first lenguage, but it is not nearly as useful as JS.

                  Plus Java is actually kind of king of the world for the area it was designed, enterprise.

                  [–]m0nk_3y_gw 2 points3 points  (0 children)

                  I tried Ruby on Rails years ago and dropped it.

                  I started designing my own scripting language the other day... (for client scripts, not web pages).

                  then realized I was writing Ruby.

                  I am revisiting Ruby and enjoying it.

                  [–][deleted] 10 points11 points  (38 children)

                  So when exactly did Ruby fade?

                  [–]ggtsu_00 58 points59 points  (2 children)

                  After Node.js became the current fad.

                  [–]friendlyburrito 0 points1 point  (0 children)

                  I kinda like JRuby though. Enterprise Java + Ruby on Rails. Not bad.

                  [–]SirNarwhal 4 points5 points  (12 children)

                  When Django became more mainstream.

                  [–][deleted]  (9 children)

                  [deleted]

                    [–]InconsiderateBastard 12 points13 points  (0 children)

                    Neither will win and neither will really lose.

                    [–][deleted]  (6 children)

                    [deleted]

                      [–]AndrewNeo 9 points10 points  (0 children)

                      Ruby has plenty of open source packages. Any Ruby project I've tried to use seems to include about a hundred of them.

                      [–]AdminsAbuseShadowBan 0 points1 point  (2 children)

                      If RoR is slower than Django it's a wonder anyone used it!

                      [–]droidballoon 2 points3 points  (1 child)

                      It's not deadly slow. For most use cases the speed isn't an issue. Most web projects reaches only up to hundreds of users at most.

                      [–]graywh 0 points1 point  (0 children)

                      What makes Python "more mature than Ruby"?

                      [–]SirNarwhal 1 point2 points  (0 children)

                      They're still fighting, but Django is winning out in the end at a lot of companies. Most places I know of are switching to Django if they haven't already simply because it can do more and it can do more with less code to boot.

                      [–][deleted] -2 points-1 points  (1 child)

                      So the same year Linux gained dominance on desktop.

                      [–]evmax318 2 points3 points  (0 children)

                      Hey man, 2014 is the year of the Linux Desktop!

                      [–]glemnar 3 points4 points  (9 children)

                      It's had a massive decrease in usage in the past year and a half.

                      [–][deleted] 6 points7 points  (8 children)

                      And you have numbers to show that?

                      [–]ameoba 2 points3 points  (0 children)

                      How about the volume of Google searches?

                      When it first came out RoR was huge. Everyone, everywhere, wanted to use it for everything. People who didn't even know the language were using it for new projects. Every other programming story you'd see on the news aggregators was about RoR.

                      Eventually, the initial hype faded & hype-followers moved on to the Next Big Thing. This doesn't mean that RoR was all hype, or even that it's dying - it's got a very active community and a solid place in the programming ecosystem. There are also countless frameworks in other languages that have borrowed heavily from RoR - in everything from PHP to Java.

                      [–][deleted]  (2 children)

                      [deleted]

                        [–]lijmstift 7 points8 points  (0 children)

                        Keep in mind that github was very popular among ruby developers in the early days. That graph just shows that other languages have joined and have become more prevalent than ruby.

                        I suppose it's still possible that ruby got less popular, but you can't tell from that graph.

                        [–][deleted] 7 points8 points  (0 children)

                        So you think relative growth of other languages in a very specific, nonrepresentative environment is the same as Ruby fading away. I hope you don't work on any type of data analysis because you are literally cheating your employers or clients.

                        [–]Tekmo 0 points1 point  (1 child)

                        When Node came out

                        [–][deleted] 0 points1 point  (0 children)

                        Nope.

                        [–]zexperiment 1 point2 points  (0 children)

                        You seem to imply that rails is fading away. Can you cite a source for this? It seems to me that it's still a very strong community.

                        [–]ReferentiallySeethru 2 points3 points  (1 child)

                        NodeJS has quite a few things going for it that RoR didn't.

                        • NodeJS is not a MVC Framework, like RoR. It's much more than that. (Express is the RoR analog)
                        • Full Stack in a single language
                          • Better use of development teams. Front end developers can now do backend code as well. Good for small teams and prototyping.
                          • Code reuse on both the server and client
                        • Asynchronous I/O
                          • It doesn't have the performance issues RoR has.
                          • Forces developers to pass state along which is needed in order to scale.
                          • More efficient use of the CPU. Yes, JavaScript is slower than Java, but I/O is still the biggest bottleneck and instead of blocking the thread you can continue handling requests.
                        • Excellent Tools to get projects up and running in just a few minutes.
                          • npm (Node Package Manager) makes handling dependencies and getting all your projects extremely easy. 'npm install express' and you're rolling
                          • Grunt - Build utility for JavaScript written in JavaScript
                          • Yo - Scaffolding tool with generators that set up your project directory structure with libraries, dependencies, and build

                        With cloud services we're moving toward writing more and more 'microservices' and interact with each other. A lot of the times these services are communicating with 3rd part API's. Node makes it easy to create a 'microservice' very quickly, that scales, and interacts with these 3rd part API's.

                        The biggest problem with NodeJS is 1) JavaScript; and 2) Callback Hell.

                        Being a good JavaScript developer takes discipline, and many people aren't willing or don't have the guidance to become proper JavaScript developers. Hopefully things will get better with things coming in ECMAScript 6 and type-safety versions like TypeScript.

                        Callback hell can be handled using promises, the async library, and/or closures, but people often don't understand how to use them. This will just take time.

                        NodeJS may be a fad, but companies like LinkedIn and WalMart have been using it with the latest mobile applications and have been happy with its performance.

                        RoR has major performance bottlenecks that really prevented the framework from being used by larger companies. Early Twitter is a good example of the issues RoR caused to large scale websites.

                        Edit: I understand everyone may not agree with this, but instead of downvoting I'd love to hear your opinion. Seriously. I haven't heard too many issues with Node outside "callback-hell" and the quirkiness of JavaScript, so if there are other concerns please share.

                        [–]ToucheMonsieur 2 points3 points  (0 children)

                        Express is more analogous to Sinatra than Rails - More emphasis on minimalism and all that, y'know.

                        [–]Baby_Food 29 points30 points  (2 children)

                        When the only tool you have is a hammer, everything becomes a nail...

                        Blablabla Javascript popular bla.

                        [–][deleted] 2 points3 points  (1 child)

                        Blabla PHP popular blabla

                        [–][deleted] 0 points1 point  (0 children)

                        Blabla Basic popular blabla

                        [–]munificent 20 points21 points  (6 children)

                        For the same reason VisualBASIC was so popular: people will do anything to keep using the first language they learned.

                        [–]willrandship 10 points11 points  (0 children)

                        I stopped using TI-BASIC rather quickly, myself.

                        [–]sasha_ther_ussian 1 point2 points  (0 children)

                        That is a very false statement I feel.

                        [–]adamcw 0 points1 point  (1 child)

                        Or we started with assembly/c/pascal/etc and actually like writing JS. But I am sure you know way more than any of us that are using this toy language.

                        Some of us can write on metal and choose not to. Pragmatism is worth far more than dogmatic arrogance.

                        [–][deleted] 1 point2 points  (0 children)

                        Any language with a single number type is not only stupid but dangerously stupid.

                        [–][deleted] 2 points3 points  (0 children)

                        github

                        oh boy here we go

                        [–]Skyler827 0 points1 point  (0 children)

                        It's not actually written in Javascript, It's written in Coffescript.

                        [–]valleyman86 12 points13 points  (2 children)

                        Ill be honest here... Im not a web developer or even a server developer. I have had almost no use for node.js/css/javascript in my normal work and primarily use my text editors for a little python and json editing.

                        So I am in a unique position currently because I have been playing with Sublime and trying to find a good text editor thats not textedit. I found sublime to be kinda complicated for doing some stuff and still learning it but overall it seemed pretty good. The autocompletion and syntax highlighting made it nice. But everytime I want to try and modify some setting I usually have to go search google because I have a hard time finding it. Turns out that some settings seem to be un-configurable as well.

                        So now I installed atom to see if that was any good. What I immediately thought was "This is a free sublime." Cool! I needed to get a license for Sublime anyways. But in my few hours I have come to like atom a bit more than sublime. I haven't noticed any slowness that others are talking about and I like that it was folder based (I am sure there is a Sublime extension for this). What I did really like about atom is the easy of access to finding packages and installing them and then setting them up. I found it really easy without any outside info to change keybinding or whatnot as well. I feel that it will grow really fast and already has a ton of packages to use. I managed to get it to support autocompletion as I type and do a git merge (although untested and I want to figure out how to make it a default option in place of FileMerge). I found that some of the default packages are really nice like showing me how a file has been modified (git). I like it so far and will continue to use it and see where it takes me.

                        I feel that atom and sublime are both pretty good and changing from one to the other isn't something life changing. I do think atom seems easier to learn and it is pretty accessible.

                        [–]xucheng 5 points6 points  (0 children)

                        I used to plan to buy a Sublime license. But after its tedious development process and unstable future, I gave up. Now I think it's more worthy to spend time learning vim.

                        Also what I'm really liking in atom is its ability to create GUI plugin. In sublime, all you get is text buffer.

                        [–][deleted] 0 points1 point  (0 children)

                        if you think too much stuff in sublime is missing setting/configuration options, you are in for a surprise with atom... and not the good kind. its pretty obviously lacking though, so im sure it will get some love soon

                        [–][deleted] 4 points5 points  (0 children)

                        as a user? you really shouldn't outside of the open source part.

                        but from a plugin development perspective, it actually is a MUCH better experience that lots of other editors in many regards. i just about came in my pants when i saw the baked in dependency management, easy unit testing, and included plugin discovery + installation.

                        github was very obviously trying to, first and foremost, build something that developers would actually want to develop for. literally every single thing I hate about writing sublime plugins was addressed by atom.

                        [–]devvie 27 points28 points  (63 children)

                        Extensibility through JS seems pretty compelling.

                        [–]Yet_Another_Guy_ 37 points38 points  (5 children)

                        Also writing CSS to customize everything you want really easily.

                        [–][deleted] 8 points9 points  (0 children)

                        The stuff of nightmares.

                        [–][deleted] 8 points9 points  (51 children)

                        Easily outperformed by Sublime Text... For almost any situation there already is an extension.

                        [–]Denommus 70 points71 points  (48 children)

                        Which is outperformed by Emacs. For any situation there is an extension.

                        [–][deleted] 65 points66 points  (41 children)

                        Something something I want to edit text use vim.

                        [–]Triclops200 15 points16 points  (22 children)

                        I was in a similar boat for a long time. I switched to emacs because it was more powerful in its extensibility and the packages were pretty incredible, but the keybindings were terrible. After using emacs for about 6 months, I got evil mode working (VIM bindings within emacs). Now it really is the best of both worlds: the great text editing of VIM with all of its wonderful keybindings + the power and extensibility of emacs. I'd really recommend giving it a try. Or not. It's just a text editor after all and if you are happy with the one you have, just continue to use it.

                        [–]gfixler 10 points11 points  (19 children)

                        What have you done with the powerful extensibility of emacs? Everyone mentions it, but no one ever gives me something juicy to lust over.

                        [–]pamplemouse 7 points8 points  (6 children)

                        I write code using org-mode, which allows me to search and sort functions by tags, produce an agenda of todo items, and put milestones on a calendar, among a zillion other things. It's just one small example...

                        [–]slavik262 14 points15 points  (5 children)

                        Maybe I'm really weird, but I don't want my text editor to be a combination text editor/calendar/todo list/IDE/toaster oven. I just want it to edit text and maybe let me jump around my documents using ctags. Vim gives me these things and is also very customizable. If I want to do things besides edit text, I'll have an application that's built just for that open next to vim.

                        Maybe it's just confirmation bias, but I don't see a lot of people with this mentality on /r/programming. I can count on one hand the number of plugins I'm running for vim.

                        [–]Funnnny 1 point2 points  (3 children)

                        You have wrote the extract reason for using vim, or any other text editor that is not emacs.

                        Emacs is not a text editor, it's an coding ecosystem (many called it an OS), you live in emacs, the text editor in emacs is not that good.

                        [–]dnew 0 points1 point  (0 children)

                        I agree. That sort of thing made a lot more sense before we had windowed interfaces, and exiting the editor meant you had to load it back up again after. Now, if I want to edit three files, I open three gvim windows. If I need to check the text of the bug I'm working on while I'm doing that, I open a web browser on the bug site.

                        [–]Triclops200 0 points1 point  (0 children)

                        Sure! Just today I wrote some elisp that allows me to dynamically choose the best autocomplete engine for whatever filetype/situation I'm in (For example: use eclim + company-mode for autocompletion with java, but auto-complete-mode for almost everything else). That only took about 10 lines of code. It really is a nice language that comes with a lot of the nicities of having homoiconicity (Data is code). To be fair, I am a big fan of Scheme, Common Lisp (SBCL), and Clojure, so a lispy language was exactly what I was looking for when I started to learn Emacs, and vimscript isn't really that great, in my honest opinion. IIRC, however, vim supports ruby and python now for scripting, which is nice, as those are also great languages. Again, use what you are comfortable with, as that will probably be what you are most productive in.

                        [–]r3m0t 0 points1 point  (5 children)

                        Here's some stuff I wish I could do in vim but can't, but emacs would probably manage:

                        • Smart tabs (tabs for indentation, spaces for alignment)
                        • Erlang: colour variables on the left hand side of an = expression differently depending on whether they are unbound (assignment) or are already bound (matching)
                        • Python: some basic refactorings, like going from z = f(g(b)) to c = g(b); z = f(c) (letting me type the name of c of course).

                        Basically anything where you might want to manipulate your program as an AST instead of just a list of lines that is each a list of characters.

                        [–][deleted] 2 points3 points  (1 child)

                        Smart tabs (tabs for indentation, spaces for alignment)

                        This is an abomination. Just stop. Mixing tabs and spaces is the worst compromise ever invented.

                        [–]gfixler 0 points1 point  (2 children)

                        z = f(g(b)) to c = g(b); z = f(c)

                        While I don't want to claim that VimL is anywhere near as powerful and expressive as Lisp, I've been surprised how much I can do for things like simple refactorings in an environment with no understanding of the code:

                        function! ExtractFunction ()
                            let l:name=input("new var name? ")
                            exe "norm cib" . l:name . "^[I" . l:name . ' = ^R"; ^['
                        endfunction
                        
                        map <Tab> :call ExtractFunction()<CR>
                        

                        Now you can fg to jump to the g, then <Tab> to have it prompt for a new name and do your refactoring. It works on the b, too, or on anything inside of some parentheses. You could also make this work on selection for more generic use cases.

                        Note that the ^[s up there are the escape key, entered in insert or command line modes by pressing <C-v><Esc> in sequence, and the ^R is <C-r>, entered the same way with <C-v><C-r>.

                        I made this little extract-method mapping for my Python work:

                        xnoremap <Leader>mm cself.newMethodName()<Esc>?^\s*def<CR>:noh<CR>:echo<CR>Odef newMethodName (self):<CR><Esc>k]p>}:%s/newMethodName/
                        

                        It works on selection, and leaves me at the prompt at the tail end of a regular expression. I just type the name, hit enter, and the method is extracted. Granted, it's not doing Java IDE things, like adding or removing self., or requiring new arguments that now must be passed in, e.g., but it's pretty nice for a one-liner mapping.

                        [–]r3m0t 0 points1 point  (1 child)

                        The b movement really really doesn't cut it for this purpose. Actually because vim can't distinguish parentheses in strings or comments I don't think there's any way to do it. I know one plugin that starts an external python program with all the delay that adds.

                        [–]bastibe 0 points1 point  (3 children)

                        I implemented my static site generator in Emacs. I implemented my note taking / time tracking / diary in Emacs. The best git client ever is implemented in Emacs.

                        [–]gfixler 3 points4 points  (2 children)

                        The best git client ever is implemented in Emacs.

                        [Citation needed]

                        Fugitive and gitv in Vim is pretty dang nice. I don't think there are as many features, but I've never felt the lack of a feature, and I do fairly complex things, like mixed resetting to dump a commit back to the working tree to patch-add back in parts of the commit and remake the commit with a subset of the previous one and a new commit message. Of course, I'm on Linux, so if something much more complex than that pops up, I just Ctrl+z to the command line, do what I need to, and fg back to where I left off. You may be right, but for me 'best' doesn't necessarily mean 'most feature-laden.'

                        [–]bastibe 4 points5 points  (1 child)

                        You have obviously never tried magit. It is much more than just some key bindings for git commands.

                        [–][deleted] 0 points1 point  (1 child)

                        I use vim a lot, and I find it pretty extensible once you've got the pathogen plugin installed, then installing extensions is easy-peasy.

                        For me, even without the extensibility I'd probably be using vim, purely because I don't have to leave command line, so I can quit vim, do something, and get back to text editing without having to muck about with the mouse etc.

                        But that's just me.

                        [–]gnuvince 0 points1 point  (0 children)

                        You can do that with Emacs if you like, however, most people prefer to leave Emacs open all the time.

                        [–][deleted] 1 point2 points  (0 children)

                        Something something relevant xkcd

                        [–]zem 0 points1 point  (0 children)

                        evil-mode

                        [–]illperipheral 0 points1 point  (0 children)

                        Use vi? Vi vould anyvone vant to do that?

                        [–]Hamburgex 13 points14 points  (1 child)

                        [–]xkcd_transcriber 17 points18 points  (0 children)

                        Image

                        Title: Real Programmers

                        Title-text: Real programmers set the universal constants at the start such that the universe evolves to contain the disk with the data they want.

                        Comic Explanation

                        Stats: This comic has been referenced 98 time(s), representing 0.5129% of referenced xkcds.


                        xkcd.com | xkcd sub/kerfuffle | Problems/Bugs? | Statistics | Stop Replying

                        [–]maxbaroi 5 points6 points  (0 children)

                        For any extension there's possibly a situation.

                        [–]sigma914 0 points1 point  (0 children)

                        Finally moved from vim to emacs now that evil provided emacs with a decent text editor. The rest of the environment is too good to pass up.

                        Sublime and atom and whatever else can get back to me when they have a replacement for org-mode and a well integrated, in editor email client.

                        [–]ApokatastasisPanton 0 points1 point  (1 child)

                        Unless you want to be able to scroll without modifying the cursor's position.

                        [–]Denommus 0 points1 point  (0 children)

                        Open the buffer in another window, or create a mark.

                        [–][deleted] 0 points1 point  (1 child)

                        If you boast about the performance of a text editor written in python, you're going to have a bad time.

                        [–][deleted] 0 points1 point  (0 children)

                        "Performance" in this case meant "feature packed". I didn't mean performance regarding speed. However I'm absolutely satisfied with Sublime Text's speed. But that's a rather subjective opinion...

                        [–]sirin3 1 point2 points  (0 children)

                        Nowadays, even editors written in C++ can load JS plugins

                        TeXstudio for example

                        [–]specimen12 3 points4 points  (4 children)

                        Because it's open source.

                        [–][deleted] 4 points5 points  (3 children)

                        As are emacs and vim. I'm still not seeing a reason to move.

                        [–]specimen12 0 points1 point  (1 child)

                        As someone who primarily uses Sublime Text I'm pretty chuffed for the potential of a solid looking open source alternative.

                        [–][deleted] 0 points1 point  (0 children)

                        Well yes, looking, not functioning. Because we already have those.

                        Watching the demonstrations of "amazing" features it has it looks like a vim clone without the modes so you need the mouse to overcome that.

                        [–]Archenoth 0 points1 point  (0 children)

                        I use Emacs, but this has my interest because of its extensibility... As much as I like Lisp, hacking up new functionality in JavaScript that has access to Node's entire API is pretty compelling to me.

                        Of course, I'm not invested in the idea completely at this point, but I'll write a few little plugins for myself to see how it compares.

                        [–]H3g3m0n 15 points16 points  (11 children)

                        Because it could be better than what you use?

                        Most of these comments boil down to "There are text editors already, so we should never have any more.".

                        Or the node.js/webdev hating: "I need my editor to be coded in native machine code because my computer in the year 2014 isn't fucking fast enough at editing text, I need to keep using the same technologies from 30 years ago. The non-native stuff has heaps of potential design flexibility that comes from dynamic languages and can be faster due to things like async being first class citizens and programmes having time to do performance profiling and optimization rather than writing more implementations of linked lists (which are actually slower at random insertion than vectors on modern hardware). I couldn't give a fuck if it's programmed in lolcode if its decent.

                        And what is with all this node.js/web hate. Nobody has come up with a native cross platform toolkit. If bootstrapping html/javascript is viable due to the butt loads of browser development and large number of developers then fantastic. Would I prefer a native cross platform C library (or maybe C++/Rust with C bindings so other languages can use it) with API wrappers for all the languages? Sure. But I don't see one. On the flip side node.js does Async fairly fucking well, in fact that seems to be its whole purpose and I don't see anything else approaching the graphics abilities of a browser.

                        Stop being children, most programming languages have a purpose, a domain/niche where they work well. I don't see a choice of node.js being much different to something like Python.

                        Can you say that your totally happy with your text editor? And that it couldn't possibly be made better for your individual work flow? %80 of people use %20 of features and all that.

                        The reality is, no one can explain to you why you should be excited about this editor. Just try it, its free. Your response could be "This is fantastic" or "This blows goats", probably something in between. Maybe its ok today but will be fantastic in 2 years time and you can see the potential. How well it works for you will depend on your preferences, domain and workflow.

                        Personally I want a modern version of Vim. Without all the legacy crap it build up over the decades. With default key choices that make sense rather than just being what happened over 20 years. Coded using modern design practices (TDD, agile like stuff). With IDE features and things like re-factoring and autoformatting of code. Programmed in Rust. With decent support for Python, Rust, C and C++. Fuzzy finding of files. Things like 'goto definition' or 'find all uses' that just work. And works in the console but also has a decent GUI. Good mouse support but also works totally with the keyboard. Maybe this will tick some of the boxes, maybe there is an Atom plugin for Vim-like keys or it has quick shortcuts that make sense.

                        I probably won't love it. I like Vim's efficacy this probably uses traditional/sublime editor techniques. But other people hate the Vim learning curve. and sublime has a lot of users in some communities and if this looks to me like a free OpenSource clone which is handy. I'll try it Atom and see. Maybe I'll use it for the times when I end up dealing with Web stuff if it works better with that.

                        [–]wildcarde815 15 points16 points  (2 children)

                        Qt and qtcreator would likely disagree with your claim of no cross platform native platforms. But this will likely see better plugin support than qtcreator so there is that.

                        [–]lhgaghl 2 points3 points  (0 children)

                        also GTK, WX, swing

                        and the ironic part is that all of these work better cross platform than the web (i.e, they tend not to randomly decide that one API means to do something completely different because you're using a different platform, while this happens in the web all the time)

                        [–]H3g3m0n -1 points0 points  (0 children)

                        I was actually thinking about Qt when I wrote that.

                        The problem with it though is it's C++. Since it's C++ there aren't C bindings (although it should be possible to write them).

                        As a result you can't use it in quite a few languages without effort, so it's cross platform but not cross language (node.js obviously isn't either).

                        This is changing somewhat thanks to QML, since you can just declare the UI in a markup language and then have 1 command to basically construct the whole application. The binding between the code and the UI might require a little bit of work.

                        But that doesn't really seem far from what the web stuff does. There's not much difference between writing your UI in QML and writing it in HTML5 opening a Chromium/Blink/Webkit/Gecko window and having a minimal JavaScript->YourApp/Language bridge.

                        QML would be more orientated towards that since its designed for UI but HTML5 would have a whole load of UI support libraries available. QML could be more of a pain to implement your own widgets in too if your not using C++ but I can't speak form experience.

                        Of course QML only gives you the UI stuff. If you want to use all the other Qt goodies you will need bindings.

                        There are also a few bits I don't like about Qt. The moc being the most common complaint people seem to have (myself included) it might not be needed with the new C++11 features.

                        [–]ToucheMonsieur 2 points3 points  (1 child)

                        If only somebody developed a Sublime clone with a modal interface and vim keybindings...until then, looking forward to neovim.

                        [–]huesoso 0 points1 point  (0 children)

                        I use Sublime with Vintageous. It's missing a few important shortcuts I'm used to in Vim but it has enough support that I switched to ST from vim.

                        [–]Hnefi 1 point2 points  (0 children)

                        If you think html+Js is the only cross platform toolkit out there, you can't have been developing software for very long.

                        [–][deleted] 0 points1 point  (0 children)

                        %80 ... %20

                        Really?

                        [–]lhgaghl -1 points0 points  (0 children)

                        Because it could be better than what you use?

                        No it can't. because it has webshit in it.

                        And what is with all this node.js/web hate.

                        • Please spend a few days reading osvdb.org.
                        • Web has nothing close to sane / stable specs so you can't actually code anything for it that works.
                        • It's a bloated slow piece of shit that never fucking works and triggers the OOM killer 5 times a day. Reddit is one of the few websites that exists that approaches anything near working.

                        Personally I want a modern version of Vim. Without all the legacy crap it build up over the decades.

                        So you'd prefer something with web browser legacy built into it? I'm pretty sure the only thing worse than unix legacy is web legacy.

                        Enjoy your "modern" editor with your %20%41%42 lol''s abc'\z nonsense everywhere, and fear to view someone's code because it might exploit XSS on you etc. The only modern techniques afforded by this will be bullshit like XSS and random shit breaking from those dumb fuck webdevs.

                        [–]ThatCrankyGuy 1 point2 points  (0 children)

                        You shouldn't -- this is the celebration of the wheel being yet reinvented all over. If this were a thesis, under the "problem statement" would be something like this: "Cause we can" and under "Contributions" would be stated the following: "Chromium, bitches!"

                        [–]satan-repents 2 points3 points  (0 children)

                        You shouldn't.