
Frontmacs - jimyl
https://github.com/thefrontside/frontmacs
======
cup-of-tea
I have mixed feelings about emacs starter kits. On the one hand I'm always
happy that more people might discover emacs. It's quite simply the most
powerful text editor out there. Hands down. I could not imagine using a
computer seriously without emacs.

On the other hand, the power of emacs comes from the fact that it's
essentially a lisp interpreter which is good at doing text editor stuff. If
you abstract this away then what you get is an editor which is implemented in
emacs, but is ultimately comparable to any other text editor.

Emacs really shines when you make it your own. And that goes far beyond the
usual "customisation" that you see. I have files full of macros that help me
write lisp which eventually changes the way the editor works. And some of that
functionality helps me write the macros that help me write lisp that (...and
so on).

For those that don't use emacs the above might sound bizarre. Maybe it's only
attractive to a few programmers. Or maybe you have to try it before you really
understand. I don't know. But that's why I have mixed feelings.

~~~
giancarlostoro
I use Spacemacs but it isn't always perfect and if Spacemacs doesn't wind up
working I end up just using vanilla emacs because MELPA is a dice roll whether
it will work or not every single time for me, usually regardless of OS. I just
know enough basics of emacs to edit code, but I wish adding packages didn't
involve so many hoops such as having to add a repository that everyone already
goes out of their way to add to emacs and having said repository fail on you.

I'm not sure what reason the emacs team has for just not adding MELPA but it
would change the game for me if it were an official addition and would require
it's addition to work out of the box. Till then, emacs is a long way away from
being my default editor, and VS Code and JetBrains are more of my defaults.

Out of the box functionality is key for any editor in my opinion.

~~~
willtim
Why not use melpa-stable?

~~~
giancarlostoro
That's what I use. The issue is in some builds of emacs on different OS' it
cannot hit the HTTPS servers themselves for whatever reason.

------
pdkl95
(edit: reposted this comment in their bug tracker)

You might want to warn people that this enables auto-saving buffers on many
buffer/frame events that are usually considered safe.

[https://github.com/thefrontside/frontmacs/blob/master/frontm...](https://github.com/thefrontside/frontmacs/blob/master/frontmacs-
editing.el#L128)

    
    
        (defadvice switch-to-buffer (before save-buffer-now activate)
          (when buffer-file-name (save-buffer)))
    
        ; the same defadvice is applied to:
        ;    other-window
        ;    windmove-{up,down,left,right}
    

This absolutely _needs_ a warning.

    
    
        (add-hook 'focus-out-hook
                  (lambda () (when buffer-file-name
                               (save-buffer))))
    

Also, maybe this should only happen to buffers that are already backed up in
the VCS? Saving unknown changes back to the original file whenever the frame
looses focus - which can happen due to external, unpredictable events - seems
like an accident waiting to happen.

~~~
maaaats
As a general fileditor, it may be scary, yes. But I have this in IntelliJ and
love it. Saving is just a useless keystroke for most of my development time.
Things are in VCS, and if not, I can also use local history to roll back.

~~~
jeremyjh
Local history is the feature that makes this practical. Without it, there will
be blood spilled.

~~~
dkersten
I don’t agree. I used IntelliJ for work for the past two years and I’ve never
had any problems with auto saving (in fact, I find it quite convenient,
although muscle memory means I still do :w with my vim bindings) and I’ve
never seen ever used the local history feature.

------
forvelin
Some screenshots could be nice, probably most people are not tend to try it
out until they see a screenshot.

Anyway, I am a simple man. I see people using Emacs and I become happy.

~~~
andanotherthing
Agree! I am not a developer or an overly technical person and I recently
started using Emacs because of an article here (using ido and org mode). I
like it but I'm not fluent enough, or know enough of what it does to switch to
it for everyday tasks - but there's a beauty in navigating file systems,
creating files, switching windows all with your keyboard.

Does anyone know if you can actually write code on Emacs, like
HTML/CSS/Javascript?

~~~
aerique
_Does anyone know if you can actually write code on Emacs, like HTML
/CSS/Javascript?_

Do you mean modifying Emacs while it is running?

If you switch to the " __* scratch __* "[1] buffer and type one of these _and_
after each of these either press «Ctrl-J» or «Alt-x eval-print-last-sexp»:

    
    
      (message "Hello, World!")
    
      (setq cursor-type 'hbar)
    
      (setq cursor-type 'box)
    
      (setq indicate-empty-lines t)
    
      (setq show-trailing-whitespace t)
    

Is this what you meant?

[1] I have no idea how to get a normal asterisk on HN.

------
grewil2
My prefered way to quickly test these things without having to mess with your
own setup, elpa directories etc:

    
    
      mkdir /tmp/.emacs.d  
      wget -P /tmp/.emacs.d https://raw.githubusercontent.com/thefrontside/frontmacs/master/scripts/init-frontmacs.el
      echo '(load (expand-file-name "init-frontmacs.el" user-emacs-directory))' > /tmp/.emacs.d/init.el
      env HOME=/tmp emacs

------
vog
Slightly off-topic, but:

 _> Most of the planet doesn't treat editor configuration as software. We do._

This is so true! And it applies to many, many other types of configuration as
well.

~~~
hiker
Reminds me of the evolution of Lua
[https://www.lua.org/history.html](https://www.lua.org/history.html) from a
configuration language to a full blown programming language.

Awhile ago, we've used this code as data approach in a game development studio
for everything. For example, maps/levels were stored as a Lua scripts that get
executed on load and contain a sequence of PlaceObject, SetProperty, etc
invocations.

It doesn't come without drawbacks, though. For example, Autodesk Maya stores
scenes as Mel code (as a bunch of createNode, connectAttribute, setAttribute
commands). This script gets executed on load in a single thread (utilizing a
single from your N cores) and scene loading can take ~30 min on large scenes.
Security is also an issue but it's fixable with proper environment sanitation
and sandboxing.

~~~
cup-of-tea
Emacs just used a full blown programming language right from the start. And
one of the very best: Lisp.

~~~
oblio
> And one of the very best: Lisp.

Got any hard numbers to back up that bold claim?

~~~
willtim
What numbers do you require? If there was a metric measuring simplicity then
Lisp (or perhaps a modern variant, Scheme) would probably win - it is a local
optimum of language design, essentially just lambda calculus exposed via a
very simple grammar (which aids meta-programming).

~~~
oblio
Any kind of serious study will do :)

~~~
willtim
Such studies are very hard to do, it is almost impossible to factor out social
preferences. For me personally, I am most productive in languages like Haskell
and OCaml.

------
vr46
Great approach. Now what does it do? (Or rather, what can I do with it
specifically compared to other distros, and how?)

------
Zitrax
It claims to be "Awesome by default", but does not tell much about what that
actually means.

~~~
gtsteve
It installs vim.

~~~
emacsgifs
You mean evil-mode?

/s

------
skocznymroczny
So many buzzwords and startup like speak but no "made with love"?

------
wyuenho
This is very similar to what I have configured in my .emacs[1] and
custom.el[2]. I like that this project is minimalist. If I were to start using
emacs 2 years ago, I'd probably start with this.

A slight gripe I have with Frontmacs is everything is loaded eagerly on
startup. I'd imagine this massively increases start up time given how heavy
weight some of the packages are (yasnippet, magit, tide). I also find issues
with it calling itself _awesome_ without integrating with any emacs window
management package.

Most config in emacs these days is just installing a couple of packages and
toggling on and off a couple customizable variables, and occasionally a couple
of `add-hook` calls. These are all low hanging fruits since packages became an
official thing in Emacs. The most annoying and non-obvious part of Emacs is
how it manages windows. To tame the totally insane default window management
system, you pretty much have to shop for a layout manager of some sort, and in
order to do that, you have to know what Emacs is doing under the hood. That's
hard and I wish more of these Emacs distros would come integrated with some
sane window management package.

I used to just rely on popwin and desktop mode mainly, and used golden-ratio
and centered-window-mode for a while. Recently I've completely ripped them out
of my config and replaced them with [purpose]([https://github.com/bmag/emacs-
purpose](https://github.com/bmag/emacs-purpose)) and
[perspective]([https://github.com/nex3/perspective-
el](https://github.com/nex3/perspective-el)). I'm loving them so far, others
seem to like e2wm, tile, rotate and others.

[1]:
[https://github.com/wyuenho/dotfiles/blob/master/.emacs](https://github.com/wyuenho/dotfiles/blob/master/.emacs)
[2]:
[https://github.com/wyuenho/dotfiles/blob/master/.emacs.d/cus...](https://github.com/wyuenho/dotfiles/blob/master/.emacs.d/custom.el)

------
nukeop
After years of using other people's configs, I found that they never really
fit my way of working completely and they're filled with things I don't
understand and/or don't use. I think most people will want to use their own
configs after a while, and that's one of emacs's greatest strengths. Nowadays
we have multiple package repositories and multiple ways of configuring it to
suit your tastes.

I also find the description filled with buzzwords and buzz-phrases to the
point where it becomes meaningless.

~~~
jimyl
> I think most people will want to use their own configs after a while

"after a while". Agree. I think they are called "starter kits" for a reason
:).

> I also find the description filled with buzzwords and buzz-phrases to the
> point where it becomes meaningless.

I have looked into their config today. Nothing very amazing, but indeed a
better default experience. It's much simpler (compared to Spacemacs) which I
think is more beginner friendly.

------
Myrmornis
> We don't want to maintain code, we just want to enter a few keystrokes and
> download more awesome.

The phrase "download more awesome" makes me very strongly doubt whether the
authors are genuinely experienced with the difficulties of software
engineering.

~~~
crimsonalucard
Clearly they are. One phrase like that has no bearing on someone's experience.

------
finnjohnsen2
"Most of the planet doesn't treat editor configuration as software. We do."

But I also wanna be the cool kid, and not a part of the herd :'(

------
mcguire
What is the difference between this and spacemacs?

------
gyrgtyn
Do any of the frontside people use evil mode ?

~~~
Robdel12
I don’t believe so. We usually recommend spacemacs for that. (They do an
excellent job with their config)

