Python/Unix Hybrid Demoed at PyCon (xon.sh)
A new shell "combines the Python language with features of Bash Unix and the fish and zsh shells," according to InfoWorld. An anonymous reader writes: Pronounced "conch," but spelled Xonsh, it runs on Linux, Windows, and Mac OS X systems, bringing Python libraries to the command line -- for example, the ability to use regular expressions when globbing files. "The first thing you'll notice about Xonsh is that it's really meant to be used as a general-purpose shell," the lead developer explained in a presentation at PyCon. "But on the other hand, it really is Python, so you can do things like add two numbers together."
They're describing it as "a Python-ish, BASHwards-looking shell language and command prompt...a superset of Python 3.4+ with additional support for the best parts of shells that you are used to, such as Bash, zsh, fish, and IPython...the superglue that bonds Python to a command-line interface and other shells."
They're describing it as "a Python-ish, BASHwards-looking shell language and command prompt...a superset of Python 3.4+ with additional support for the best parts of shells that you are used to, such as Bash, zsh, fish, and IPython...the superglue that bonds Python to a command-line interface and other shells."
It's cleverly named "conch", like the history of other shells (Korn shell, Bourne Shell, Bourne Again Shell (BASH), C Shell). I kinda wonder why there isn't a Taco Shell....
Man I hate Python with a passion
What is it with all this "it's spelt this way, but pronounced that way" stuff?
Just give it a not-so-clever name nobody cares.
This is awesome! Wait, it's Python 3?
NOOOOOOOO
Never understood the attraction to the bash cli. Good for scripting, though (when Perl is missing).
It's not pronounced conch, it's pronounced zonsch. It literally says that on the first line of the link you provided.
You keep doing this shit, lazy fucking editing. You need to go.
Why is the title of this article "Python/Unix Hybrid Demoed at PyCon" when it is a Python/Bash hybrid? Bash != Unix
This is such a great idea. I've always wanted to remove the separation between simple execution scripts and complex code which is difficult to understand. it really bugs me that we have these "standards" which simplify portability and make things clear.
Ideally in a few years, we will have inscrutable, half-assed code all over the execution space. This will give people the opportunity to learn python so they can debug simple execution wrappers. EXCELLENT!
But if it's not ready yet, we don't have to wait for it... we can simply replace all the .sh files on our systems with .pl files. That'll make everyone happen, too, and we can start today!
And now we will be slaved to use the 4 spaces for the indentation in scripts? If we don't follow the rules, then we will be fired?
Great....
NOOOOOOOOOOOOOOOOOOOooooooooooooooooooooo ...
Unix is not a shell (if it were, we would not need shells) and Xonsh/bash/Python are not operating systems.
Many people know that Perl is spelled "perl" and not pearl, but a lot of people don't know it's pronounced "Gob gipple fish waddle". So if you have been wondering while real perl monks ignore you when you ask a question about perl now you know.
Seriously, if you want a shell with magic powers just use perl. it's exactly what it was originally built for. It is wood chipper to pythons battery powered hedge trimmer when it comes to sysadmin tasks. It's the ideal sys admin and glue language.
Some drink at the fountain of knowledge. Others just gargle.
Xmas = Christmas
Xonsh = Crunch
Just my humble opinion.
is "Bash Unix"?
Is a self referential acronym Hipster?
Some drink at the fountain of knowledge. Others just gargle.
I already reported a dozen of child pornography site that I found on Google, do You know what Google did? They changed the names for those places after the police find out those websites.
Meanwhile, in the real world, the rest of us get real work done on Windows with Powershell.
1. What is so awesome about adding two numbers in the shell?
2. In any case, bash can do it too -- try echo $((15+7)).
3. One of the selling points of bash is that it needs to be fast for power users, so it uses cd instead of change_directory(). One of the selling points of Python is that readability counts, so it would choose change_directory() over cd. How do you plan to reconcile the two approaches?
My first program:
Hell Segmentation fault
It's pronounced "Zonsh."
How about NO?
This is yet another example of stupidity in the open source community. You don't get to define how a word sounds. The way you write it defines how it's said.
And even if you say "Xonsh", it sounds stupid anyway.
There's a reason people don't use "GIMP" in businesses. Nobody can go see his boss and asks to replace Photoshop by "GIMP".
perl can look rather odd if you are not used to it.
Yes but in this instance it looks like Bash! and Awk and Sed and Grep. So for a shell, the syntax is just like what you are replacing.
Some drink at the fountain of knowledge. Others just gargle.
"Pronounced "conch," but spelled Xonsh, ..."
Why give it an annoying name that makes it more difficult to communicate?
Unix is a family of OSes, Python is an interpreted language.
How can a command line shell be a hybrid between an OS and a language?
You insensitive GUI clod! ^C^C^C^D!
P.S.
PySh whould have been a much better prank, at least in Italian!
Sent as ripples into the electromagnetic field. No single photon has been harmed in the process.
Like PEP 8 clearly says,
Use 4 spaces per indentation level.
That's it. That's all there is to it. It's simpler and clearer than the rules for just about every other programming language out there.
Anyone who can't handle using 4 spaces is a lost cause.
NodeJS. Hipsters are realizing that JS sucks, so now they have to bring their naivety to the python world. Horray! I can't wait to listen to idiot co-workers talk about how great it is that they can now run a heavy shell, just to avoid learning BASH. Can we stop mashing shit together already?
This is a really nice shell. From it's features it's basically comparable to Fish shell. It's probably not compatible to the Bourne shell, so not really good to execute Shell scripts. But the same is true for Fish.
What I am missing is a good type system and a possibility to exchange data between processes in a way that is more structured than plain text. For the moment it is really hard to even put the output of ls into any other process in a reliable way
If I want the computer conch and am not interested in seeing a bunch of pictures of shells, I know what to type.
... you can do things like add two numbers together.
You mean like I was doing with /bin/sh 25 years ago?
Unfortunately, this introduces "pip install" into the basic shell utilities. For those outside of Python, the PyPi website is the re-invention of Perl's old CPAN utility for Python. Unfortunately, it has all the same problems. Developers insist on including latest/greatest modules of entirely irrelevant components as dependencies in their new code, and other developers are told to run "pip install" to get those modules and all the dependencies. This auto-upgrades working modules on your current system, and breaks the dependency chain for other features.
Better yet, for RHEL based systrems, since the "rpm" package management uses Python, installing the wrong depeendency from the wrong Python module can break the entire reset of your package management and make the system unrecoverable, except from an old OS image. So now, people setting up this Tower of Babel of a shell can break the *entire* environment, because the wrong package installed can break even the Python based shell itself.
If this ever takes off, I'm looking forward to a lot of money cleaning up the messes. I cleaned up when people kept writing complex nonsense in Perl and breaking working systems due to unexpected upgrades. And I often did it by stripping *out* the complex Perl nonsense, and now am doing it with complex Python modules, and replacing it with a few lines of stable, reliable, "bash" script. Heck, I just cleaned up on a contract to throw out a complex Python based software deployment system that required 3 different versions of Sphinx to build 3 different Python modules, each of which broke the other two Sphinx modules, and turned the whole mess into one Makefile.
Sounds like someone got jealous of Powershell and decided to a "me too!" shell for the other OSs. Meh.
People xonshtantly mispronounce these things.
Quay.io? It's not "kway", it's "key".
"Conch" isn't fucking "konsh", it's "konk". Like the devs need on the fucking head.
"Pronounced "conch," but spelled Xonsh,...".
I pronounce it "Shanika". But I would spell it "pythinux".
More info here: http://xon.sh/
Some of it looks really cool, python + sh is a great idea. Though some of it looks ugly (http://xon.sh/bash_to_xsh.html), the alternative to '$?' for example.
Try "go language" and "conch unix"?
Expect it to have its name ripped to pieces (pronounced pisces, for the heck of it). Which pronunciation guide did they use? Is there a language in the world that natively makes it sound right like that?
"Everybody's naked underneath" -- The Doctor
They clearly define the block no matter how you format it.
More than once I've seen a python program where someone has accidentaly deleted tabbed whitespace on a end line in a block and moved that line into the outer block and of course python says nothing. But now the program is broken. Try removing a bracket in C/C++/java and see what happens.
Whitespace as a block delimiter is a retarded idea, always has been, always will be.
This is totally cool! They've invented ipython. Now they just need to make it run in a brower.
You want to pronounce it 'conch', then spell it that way. Not starting with a consonant pronounced like a 'z'. Enough with the cutesy brain damaged fucking names.
-- I ignore anonymous replies to my comments and postings.
Whoa.
https://www.youtube.com/watch?v=uaje5I22kgE
This was a feature of perl a decade ago.
It says right on the homepage:
the xonsh shell
~ It is pronounced zonsch ~
Either way, it's still terrible name.
Does the author of this posting not realise that "UNIX" isn't the same as bash or whatever you use for you login shell? Anyway, in UNIX (incl. Linux), you can use anything as a login shell, including less productive commands like "/sbin/shutdown -r" and "/usr/games/sl". This is not unique to UNIX, BTW - I once worked with an IBM product called AS, which had a fascinating command that could log you out and then log in as a different user; well, I say different - this included the same user, of course. You could also specify this command as you login shell, and if you didn't use a password, you would then have a loop that could only be stopped by atking the whole of AS down.
I have a different vision for future shells: https://github.com/ilyash/ngs/ . Using one of the existing languages has obvious advantages but it's not a domain-specific language for system tasks so it will never be optimal for that. Making DSL on top of an existing language also does not sound like an optimal solution. My approach is a domain specific language which specializes on system tasks and has small simple bash-like syntax mode and "normal" programming language syntax mode. The two modes are easily mixed.
I love python, I love bash and shell scripting, but why would I want this? I usually just start a python shell if I want python's more advanced string parsing.
Brilliance, Keanu, brilliance!