Haskell for Mac(haskellformac.com) |
Haskell for Mac(haskellformac.com) |
Given the baked in support for sprite kit, I presume that this is an evolution of the tools he used to teach his young ones how to write games.
This seems unnecessarily crippling. Is this really required of desktop App Store apps?
Source: https://www.google.com/search?q=os+x+root+exploit&gws_rd=ssl
It is also the way to go on Android, iOS, Windows 10 onwards. And was on Symbian as well.
If an application get p0wned, it won't be able to access more than what is strictly necessary to perform its duty, instead of free reign over my $HOME.
- Giving 30% to Apple is no small thing
- You lose the ability to maintain a direct relationship with your customers, provide upgrade pricing, etc
- Any updates are gated behind a delay-and-frustration-prone release process.
- There are plenty of services that will handle billing for 5% or less, compared to Apple's 30%. However, in the post-Stripe universe, implementing a webstore yourself is actually super easy.
We have started to investigate other distribution channels. However, adding that option will take some work (= time).
If not, there's your answer.
Wow... based on the sandboxing thing I had assumed it was an iOS app for learning Haskell on your iPad or something.
The "household-appliance" moniker is a red herring though. Just because they supply an App Store doesn't mean you have to use it, and it doesn't mean you can't do amazing things with it. Are we really comparing something that can help educate, research, run a business, entertain, etc. with a dishwasher or TV?
What can a great IDE add to the experience of learning / using Haskell?
I am a bit baffled as to why it says the Haskell code can't initiate network connections. Yeah the app is sandboxed, but sandboxed apps can easily request network access. And it seems like that's a common-enough thing to want that it should support it.
I will certainly work towards network support in coming releases.
Looks cool, lots of inspiration from swift playgrounds. Though, aren't there any open source alternatives (I have never tried haskell), probably similar to ipython (jupyter) stack?
> We will release the SpriteKit binding under a permissive open source license for general use as soon as possible.
; and "Let the type system help you", which, of course, is just a feature of Haskell, not of this environment.
A drag'n'drop project manager is nice, but doesn't seem like that big a deal; so I guess that the real selling point is the "Immediate feedback". Indeed, that seems to be a huge selling point, and it's something for which I've often wished while coding Haskell. However, their blurb on it is very brief:
> Haskell playgrounds provide instant feedback, displaying types and results of computations, both textual and graphical.
Is there any way to read more about this, and, in particular, to evaluate how much value it adds before buying?
http://blog.haskellformac.com/blog/from-the-read-eval-print-...
The author also had a blog post on it here:
http://justtesting.org/post/103422773731/why-are-playgrounds...
Comparing it to HP doesn't really make sense; it's a very early stage IDE with some yet-unreleased libraries and Xcode-like features/interaction (see Playgrounds) by a known GHC/Haskell developer.
Indeed, I should have made it clear that I was looking for an appropriate comparison, not meaning to suggest that HP (which was just the first thing that came to mind) was an appropriate comparison. Thanks for the insight!
[1]: http://leksah.org
One thing I'd like to see is how well it works for calling into the OS, or at least calling into or being called from C/C++/Objective-C (and eventually Swift).
Looks pretty cool though.
Secondly, if the product were priced at a point where it produced a viable revenue stream - for example, Logic Pro X addresses a very large market and is priced at $199.99 - one could hardly expect the student discounted price for the full product to be less than $25. However, my experience has been that no matter how low-priced the product (greater than $0), students will always ask for a lower price. :)
Maybe in the future, if it goes well, the developer might consider selling outside the Mac App Store, and this have more flexibility. I have no knowledge of his plans on that matte,r though.
You obviously get the convenience of NOT having to replicate all these, and the guaranteed experience of those parts working together as soon as you install it, and with a nice GUI at that.
For 25 bucks, I'm going to get a bunch of limits (including the aforementioned sandbox ones) and these ones too:
"Haskell SpriteKit code can currently only be used in Haskell for Mac."
"can currently not be extended"
"We recommend to only use Haskell for Mac with Cabal files generated by the app itself."
Will these things be a problem? How long before I run up against a wall with this? Am I going to kick myself over the 25 bucks in 2 weeks cause one of these is a show stopper for some common task in haskell?
And what's the advantage to the average user? If I'm a Mac user, I'm interested in Application X working just like every other Mac application. Similarly if I'm a Windows user. I'm rarely bothered that Application X works the same on both Windows and Mac.
Sure, writing the GUI properly for each platform still requires more work, but far far less if all but the front end is cross platform.
However, it very rarely seems to be done, even with modern additions and improvements in C++.
In fact, this question contains by implication another seemingly reasonable question: Given that there exists a universally available cross-platform development API, why, in 2015, is anyone writing anything other than a web application?
Dropping half of my days work on a software, which has limited capabilities, unknown reviews, is closed source (even though is basically bundled open source tools in, I suppose, comfortable package), and can cause some extra bugs from it self. Give me ol' good 14 day trial, or I will not pay blindly. </rant>
This project looks exciting because it lets you get started with a working distribution. I'm happy to pay for the privilege of ignoring the mess until the language has proven itself to me.
I have started to investigate alternative distribution channels (which then would allow trials, too), but that will take a while to implement (so, I can't promise anything concrete at the moment).
Also, this book is supposed to be a good intro to Haskell: http://learnyouahaskell.com/
If you'd like to just take a look, go to try.jupyter.org and select the "Welcome to Haskell" notebook!
I own a Mac but I didn't even know what "Mac App Store" was. Why does such a thing exist? The concept of a centralized app store for desktop apps is absurd.
Long term monetization will only work if he can ship version 2 at some point to pull in some more money from the same people who bought version 1 (and the same thing with version 3). The choice of not shipping obvious features of an IDE is in order to have better differentiation between versions.
Though, maybe there is really a good reason for that involving some of Apple's policies. I heard they teach the developers all kinds of lessons when it comes to how a program should be made... who knows...
Also, this would require the developer to find a way to charge people outside of the store. In that case, it's almost half way to setting up a full direct store with a direct version.
There is benefit to having a direct version (all our applications do) but many developers today don't want to set this all up. It's quite a lot of work and perhaps the developer is not interesting in spending time on that. Moreover, he might not even be sure if the app is successful enough to invest time into this work.
Regardless, I hope things go well for the developers.
You can't, because you can't program yet, or are still working on improving your programming skills by experimenting with functional programming languages. Why else would you be commenting on a starter development environment for Haskell?
> Will these things be a problem? How long before I run up against a wall with this? Am I going to kick myself over the 25 bucks in 2 weeks cause one of these is a show stopper for some common task in haskell?
If this thing teaches you how to code common tasks in Haskell for only $25 bucks, it'll be the best money you ever spent.
This developer better think again before he gets my 20ish dollars!
Sarcasm is tough.
Do you think they don't know who their customers are?
I'd bet that fewer than 5% of any computer company's customers want a general purpose computer.
I've been interested in playing with Haskell for a while but I've been put off by the need to setup existing tools. Having an all-in-one package with neat presentation, packaged libraries, and immediate feedback sounds like a great deal for $25.
If you're willing to run a VM for a single app you are probably the type of person who is willing to spend the time to set up a Haskell tool chain and libraries for free.
Although I am most definitely not that type of person, all I care about is playing with the language. Anything detrimental to that is just noise and not worth the time. So I consider the $25 quite a cheap price to not have to think about the extraneous actions required to get a Haskell environment up and running.
Haskell is particularly well suited to this king of workflow, everything being immutable and evaluating to a value. You can think of it as the best programmable calculator in the world.
What you get is a nice looking environment with a built-in playground alá Swift's, that can visualise data, types and even games.
First it was a setting in the preference panel, preventing you from installing non-MAS apps without disabling it.
Next it's the upcoming rootless OS X, System Integrity Protection: it's only a matter of time until the ability to install non-MAS apps is completely removed, buried, or hidden in Recovery mode (as the SIP setting is)
I suspect this will happen within the next one or two major versions of OS X.
And we have heard this for how long already? Doing so would basically be suicide for the Mac. First of all because a sizeable chunk of users are technical users. Secondly, a lot of software is not available in the Mac App store and likely will never be (I think Microsoft and Adobe would rather abandon OS X than giving 30% for each cloud subscription to Apple and being at the mercy of the MAS gatekeepers).
http://widgetsandshit.com/teddziuba/2010/05/the-future-of-ap...
It's not "yet" -- it's now, with each release, and getting worse each time.
Pretty sure the default is MAS + Signed Apps. This setting also doesn't actually stop you from installing a non-signed app. You just have to right click and select open to bypass the warning.
I actually keep this enabled so I know if an app isn't signed. So installing non-signed apps is a conscious decision.
I think that you also need an admin password, which can be an issue for users who don't control their machines. (My work distributes Macs with users configured to be admins, but on Windows machines only allows standard users, so I assume that it's only a matter of time until they change policies and this bites me.)
Until then I find them to be the best laptops on the market.
The rest is pure speculation.
The SIP setting is most certainly "opt-out." Have you demoed El Capitan?
The Preferences -> Security -> Allow non-MAS/non-signed apps setting is most certainly "opt-out" on any machine you buy from Apple or at the store.
Prefacing something with "I suspect" generally allows one to speculate.
The trend is that you're gradually losing control of your machine.
This protects against a whole host of issues. It safeguards against garden-variety incompetence[1]. It provides some defense against the large number of badly-intentioned people who can write an Objective-C app, but don't have the expertise necessary to weaponize a typical root escalation exploit. It prevents apps from accessing your contacts, reading your emails, determining your location, and accessing the webcam and mic without your knowledge, amongst other things.
Does it protect against a motivated, highly technical attacker? No, not really. But that hardly makes it useless.
[1]: http://www.macobserver.com/news/98/december/981229/bungierec...
The exploits tend to be trivial, often trivial enough to fit into a single tweet. (https://twitter.com/i0n1c/status/623727538234368000) They require no competence to use.
As for protecting against incompetence and mistakes, that is far too an extreme of a measure solely to protect against that. Some decent QA will fix that.
So what is the point, really, of sandboxing if it does not thwart highly technical attackers? It severely limits the functioning of apps, makes it far more difficult for app developers (myself included), and for what benefit that could be worth the trade off?
https://www.google.com/search?q=developers+leaving+%22mac+ap...
It thwarts the attackers who aren't highly technical, and frustrating the script kiddies could have flow on effects when beginner attackers don't get the reinforcement to motivate themselves to refine and build their skills.
Secondly, exploits can be patched over time. Ten years from now, is OS X going to be better off for having the sandbox? Do you expect a lot of trivial exploits to be discovered after another century of person-hours are invested in the sandbox?
And yet we do those things anyway. The idea is defense in depth, such that if one mechanism fails then hopefully another will mitigate the damage. Sandboxing isn't perfect, but it's another layer of security and I'd rather have it than not.
It's in the best interest of the hacker that broke into your system that your system continues to work flawlessly for both you and the hacker. This is why Mac OS X "rootless" is just yet another obstacle for the power user, yet another obstacle when compiling and installing POSIX code from source, and yet another step closer to locking down OS X to be an appliance like iOS.
Yeah, cracking is asymmetric warfare that we have no hope of winning, I think anyone with any knowledge of computers realizes that is true. It doesn't mean we should smugly shoot down anything that makes it incrementally harder.
I'm guessing it works by refreshing the world right now, correct?
The computer is more accurate and faster at determining the type of an expression than humans are. That seems like a big part of the value proposition of static languages. So why not let it tell you the type in the editor instead of having to stop what you are doing to compile it (which may require fiddling with the code to get a meaningful type error)?
Also, as the joke goes, well typed programs can't go wrong in Haskell because the debugger just isn't that great.
Even if you want these things, there are better ways to go about this instead of making a whole gargantuan interface to get a couple of features.
I'm not usually one to tell people what they should be working on, but time could be spent on this instead:
https://github.com/haskell/haskell-mode/wiki
(See also this for how to get in-source error information and type checking, if needed:
The main problem is that there aren't good ways for Haskell analyzers to communicate with a Java/C++ UI in memory. So you get clunky+slow network/IPC APIs (or worse, communication via filesystem) for stuff that ought to be tiny in-process method calls.
And writing the whole UI in Haskell is...not Haskell's strength area.
Java, C# ... and both received probably hundred times more man-power than Scala IDEs.
What else?
My experience: All dynamic languages – probably not. C++? Hell no. F#? No. OCaml? No. Haskell? No.
Which language do you think of?
Then there is objective C, Swift, Kotlin, Dart, Typescript, some versions of smalltalk. Many of those languages were designed specifically for IDE use (dart and typescript definitely).
And if you really want to disable rootless anyway, you can do so. Boot into the recovery partition and there's an option there to turn off rootless.
I'm also completely baffled by the claim that, just because no security solution is 100% perfect, that we shouldn't even try. That makes no sense at all. Yes, security is hard. But protecting you from 99% of all malware, even if there's the rare case of malware that gets past you, is still extremely useful. Besides, it's awfully cynical to declare that SIP is an impossible goal before you've even looked at it.
But, you can disable SIP so not sure how much it really matters.
Good catch on finding something that breaks with SIP, but even if you philosophically disagree with the idea of rootless, you should still agree with the notion that library interposing is a serious security threat and should welcome the changes to block interposing of system processes[1].
[1] From the What's New In El Capitan docs[2], the specific aspect of SIP that applies here is "Code injection and runtime attachments to system binaries are no longer permitted".
[2] https://developer.apple.com/library/prerelease/mac/releaseno...
So no, I don't welcome "SIP". There are better ways to solve that problem.
I recommend that you tally up the revolutionary technologies produced over the last 30 years that allowed us to get to this point (including the web), and then consider how many of them could be invented on Mac OS or iOS today.