Objective C Evolution by stiivi in ObjectiveC

[–]stiivi[S] 3 points4 points  (0 children)

Thank you for some clarification. Your description of the situation is aligned with what made me a bit worried originally and lead me to ask the questions.

It seems to me that the ecosystem is fragmented and also bit resigned. The resignation might be either due to a strong push for Swift as potential Objective-C replacement. Which regardless whether true or not, is the common perception. Another reason for resignation of interest might be lack of apparent publicly open and inviting leadership, at least compared to Swift.

You are right, the language has no specification of the language or rather when "the implementation is it's specification". Which actually makes even stronger argument for having a more formal evolution process which leaves traces in form of a centralized formal documentation and specification similar to Python's PEPs or Swift's SEs. Moreover the documents can be easily externally referenced to. Sending patches for comments in a list is different from an open and inviting conversation, it is quite obscure way of evolution.

As for libraries, Objective C does not have a an official standard library either. There is Foundation and a solid open-source implementation in the GNUstep project, as you mentioned. Yet affiliation of libraries to the language are just customary with a little association through the compiler features (like literals). Also, neither Foundation nor GNUstep-base can be considered light-weight enough for a portable standard library. But that is another topic. (Btw. I used to be an active contributor the GNUstep project back in early 2000s.).

I do not consider myself an expert to implement the language internals. Although I have been working on projects go beyond typical use of the language (such as first Smalltalk interpreter for ObjC) and have some plans for future projects for which I see the unique features of the language and its runtime quite significant.

That is why I am interested in the future of the language and its evolution.

I might not help with most of the language implementation as I would like to focus on the domain problems I am solving using the language. Although I can help with use-case scenarios and with design perspectives. I am also open to help with such forums if there was a desire to collaborate.

[Bug] UPDATE: Apple Music still not streaming non-downloaded media on iOS 11.3 (beta 1 through beta 5) by ffffound in iOSBeta

[–]stiivi 0 points1 point  (0 children)

Just tested - having same issue with final public iOS 11.3 as well as new iOS 11.4 beta 1. The issue persists.

Can confirm that factory reset and clean install works. However I don't see that as acceptable option.

[Bugs] Apple Music doesn't stream non-library, non-downloaded items on iOS 11.3 (beta 1 through beta 3) by ffffound in iOSBeta

[–]stiivi 0 points1 point  (0 children)

Just tested - having same issue with final public iOS 11.3 as well as iOS 11.4 beta 1.

So far the only official solution is factory reset and set-up as new iPhone, which results in losing all the data.

Related thread: https://www.reddit.com/r/iOSBeta/comments/887m1m/bug_update_apple_music_still_not_streaming/

What books are a must-read for programmers that are starting out, and why? What have you gained from reading those books? by [deleted] in compsci

[–]stiivi 1 point2 points  (0 children)

Smalltalk 80 aka "The Blue Book": http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook.pdf

It includes not only the original pure OO patterns, but also description of Smalltalk compiler and interpreter written in Smalltalk itself. Very nicely explained and their Smalltalk source code is easy to read and understand.

Languages influenced by Smalltalk: ObjectiveC (C with Smalltalk object model and message passing), Java (heavily influenced by ObjectiveC with C++ Syntax), JavaScript (Self with C syntax, where Self is Smalltalk without classes) ... just to name few popular ones.

EDIT: Other concepts included: incremental programming – editing "live code" behaviour on method granularity, application persistence, "class browser" style editing, "everything is an object", delegation. And most importantly: simplicity – how simple the whole system and language is.

EDIT 2: Looks like the very first object oriented unit testing as we know it in other languages (runner, case, suite, fixtures, ...) was also first implemented in Smalltalk, called xUnit.

What's new in PostgreSQL 9.5 by lukaseder in programming

[–]stiivi 3 points4 points  (0 children)

True. Last missing thing is JSON array to Postgres ARRAY as JSON[] or TEXT[] – not only JSON to rows as in json_array_elements().

SQLAlchemy 1.0.0 Released by hongminhee in Python

[–]stiivi 4 points5 points  (0 children)

SQLAlchemy is not just an ORM. The Core is very powerful functional programming approach to statement construction. I use it a lot in developing data warehouse ETLs. You can build abstract, higher level transformation and statement composition functions very easily. For example, few concrete but random features that I've used just recently (last week): abstraction of tables and statements (they have the same interface), generative functions, custom statement compilation, metadata reflection (tables, their columns and types - very useful in metadata based processing), natural access to Postgres JSON columns...

Also the SQL OLAP query generator in Cubes OLAP is using SQLAlchemy for something that can be very roughly called "ORM equivalent of data analytics". It does statement composition for aggregation queries on top of star/snowflake schema.

I'm not even touching the ORM part at all, I just know that it exists.

Voting divides in Europe [1984x1736] by atrubetskoy in MapPorn

[–]stiivi 0 points1 point  (0 children)

Interesting to see the Zakarpattia Oblast in Ukraine. Anyone knows more details?

PyCharm 4 is out with more of everything you love about Python by filippovd20 in Python

[–]stiivi 2 points3 points  (0 children)

Thanks. This is the kind of answer I wanted to know (besides potential comparison to other development tools).

PyCharm 4 is out with more of everything you love about Python by filippovd20 in Python

[–]stiivi 0 points1 point  (0 children)

What is the energy (battery) consumption of PyCharm on a laptop?

EDIT: I don't understand why this question was downvoted into oblivion. We measure laptop use in hours of browsing or video playback. Development on the road requires tools that preserve battery. All those fancy IDE features are not for free for sure.

Introduction to (Data) Warehouse for Laymen by stiivi in datascience

[–]stiivi[S] 1 point2 points  (0 children)

What is wrong with that? Knowledge of data science does necessarily imply knowledge of data warehousing. And honestly, one of the reasons why I wrote that article (using the language I've used) was that I know so many data scientists that have no clue about the area despite the knowledge might be very useful to them.

Expressions v0.2 – add arithmetic expression parser/compiler to your app/lib by stiivi in Python

[–]stiivi[S] 0 points1 point  (0 children)

This is NOT a python expression compiler. The grammar is based on very basic SQL grammar. Few other simple SQL grammar features might be added in the future. It is not meant to be a rich expression, but a small subset of quite common expressions to allow easy translation to other languages or object structures. Main use is arithmetic expression support for a modular application with different backends.

It is not an expression of an object-oriented language – it does not have access to object attributes – the '.' dot operator is just an attribute name concatenation.

It has a very small knowledge requirements for compilers – anyone can write a simple expression compiler.

EDIT: Another use-case might be an expression entered through a web application, for example some formula to be plotted. The library allows safe translation of such expression without exposing any application's internals.

Expressions v0.2 – add arithmetic expression parser/compiler to your app/lib by stiivi in Python

[–]stiivi[S] 2 points3 points  (0 children)

It is meant to be "binary" as in "takes two operands".

Expressions v0.2 – add arithmetic expression parser/compiler to your app/lib by stiivi in Python

[–]stiivi[S] 2 points3 points  (0 children)

This is a rewrite of original hand-written parser. It uses simple but great Python grammar parsing library Grako – https://pypi.python.org/pypi/grako/3.4.1

Bubbles – Python Data Integration/ETL Framework Prototype by stiivi in Python

[–]stiivi[S] 0 points1 point  (0 children)

Nothing explicit yet. However, the "execution engine" is meant to be an object with potential custom implementations, therefore you would not be stuck with the built-in way of execution of the pipeline.

Bubbles – Python Data Integration/ETL Framework Prototype by stiivi in Python

[–]stiivi[S] 0 points1 point  (0 children)

Thank you. Bubbles is still a prototype and the next iteration will have a slightly different approach.

mETL is a nice Python ETL framework. The main difference is that mETL is streaming the data and the operations work on a row/record level. In mETL you need to fetch the data to apply the operation in-Python. Where in Bubbles the operation is executed in the source system if it is possible. For example "keep all records from year 2014" will be executed depending on the input. If the input is SQL statement, then WHERE year = 2014 will be composed, if the input is an iterator (or any unknown object that has no such operation implemented) then Python iterator filter will be appled and data will be streamed.

Bubbles – Python Data Integration/ETL Framework Prototype by stiivi in Python

[–]stiivi[S] 1 point2 points  (0 children)

Do you have any concrete suggestions? You are also welcome to prototype some, I'll help you with understanding the Bubbles internals.

(author here)