Monday, April 6, 2009

Why I don't like Scala

Scala is a hybrid functional/imperative object/actor language for the Java Virtual Machine which has recently gained notoriety by Twitter selecting it as the basis of their future development. My language Reia is also a hybrid functional/imperative object/actor language. You may think given these similarities I would like Scala... but I don't.

I originally tried Scala back in 2007, shortly after I started becoming proficient in Erlang. I was extremely interested in the actor model at the time, and Scala provides an actor model implementation. Aside from Erlang, it was one of the only languages besides Scheme and Io I had discovered which had attempted an actor model implementation, and Scala's actor support seemed heavily influenced by Erlang (even at the syntactic level). I was initially excited about Scala but slowly grew discontented with it.

At first I enjoyed being able to use objects within the sequential portions of my code and actors for the concurrent parts. This is an idea I would carry over into Ruby with Revactor library, an actor model implementation I created for Ruby 1.9. Revactor let you write sequential code using normal Ruby objects, while using actors for concurrency. Like Scala, Revactor was heavily influenced by Erlang, to the point that I had created an API almost virtually identical translation of Erlang's actor API to Ruby as MenTaLguY had in his actor library called Omnibus. MenTaLguY is perhaps the most concurrency-aware Ruby developer I have ever met, so I felt I may be on to something.

However, rather quickly I discovered something about using actors and objects in the same program: there was considerable overlap in what actors and objects do. More and more I found myself trying to reinvent objects with actors. I also began to realize that Scala was running into this problem as well. There were some particularly egregious cases. What follows is the most insidious one.

The WTF Operator

One of the most common patterns in actor-based programs is the Remote Procedure Call or RPC. As the actor protocol is asynchronous, RPCs provide synchronous calls in the form of two asynchronous messages, a request and a response.

RPCs are extremely prevalent in actor-based programming, to the point that Joe Armstrong, creator of Erlang, says:
95% of the time standard synchronous RPCs will work - but not all the
time, that's why it's nice to be able to open up things and muck around at the
message passing level.
Seeing RPCs as exceedingly common, the creators of Scala created an operator for it: "!?"

WTF?! While it's easy to poke fun at an operator that resembles an interrobang, the duplicated semantics of this operator are what I dislike. To illustrate the point, let me show you some Scala code:

response = receiver !? request

and the equivalent code in Reia:

response = receiver.request()

Reia can use the standard method invocation syntax because in Reia, all objects are actors. Scala takes an "everything is an object" approach, with actors being an additional entity which duplicates some, but not all, of the functions of objects. In Scala, actors are objects, whereas in Reia objects are actors.

Scala's object model borrows heavily from Java, which is in turn largely inspired by C++. In this model, objects are effectively just states, and method calls (a.k.a. "sending a message to an object") are little more than function calls which act upon and mutate those states.

Scala also implements the actor model, which is in turn inspired by Smalltalk and its messaging-based approach to object orientation. The result is a language which straddles two worlds: objects acted upon by function calls, and actors which are acted upon by messages.

Furthermore, Scala's actors fall prey Clojure creator Rich Hickey's concerns about actor-based languages:
It reduces your flexibility in modeling - this is a world in which everyone sits in a windowless room and communicates only by mail. Programs are decomposed as piles of blocking switch statements. You can only handle messages you anticipated receiving. Coordinating activities involving multiple actors is very difficult. You can't observe anything without its cooperation/coordination - making ad-hoc reporting or analysis impossible, instead forcing every actor to participate in each protocol.
Reia offers a solution to this problem with its objects-as-actors approach: all actor-objects speak a common protocol, the "Object" protocol, and above that, they speak whatever methods belong to their class. Objects implicitly participate in the same actor protocol, because they all inherit the same behavior from their common ancestor.

Scala's actors... well... if you !? them a message they aren't explicitly hardcoded to understand (and yes nitpickers, common behaviors can be abstracted into functions) they will ?! at your message and ignore it.

Two kinds of actors?

One of the biggest strengths of the Erlang VM is its approach to lightweight concurrency. The Erlang VM was designed from the ground up so you don't have to be afraid of creating a large number of Erlang processes (i.e. actors). Unlike the JVM, the Erlang VM is stackless and therefore much better at lightweight concurrency. Erlang's VM also has advanced mechanisms for load balancing its lightweight processes across CPU cores. The result is a system which lets you create a large number of actors, relying on the Erlang virtual machine to load balance them across all the available CPU cores for you.

Because the JVM isn't stackless and uses native threads as its concurrency mechanism, Scala couldn't implement Erlang-style lightweight concurrency, and instead compromises by implementing two types of actors. One type of actor is based on native threads. However, native threads are substantially heavier than a lightweight Erlang process, limiting the number of thread-based actors you can create in Scala as compared to Erlang. To address this limitation, Scala implements its own form of lightweight concurrency in the form of event-based actors. Event-based actors do not have all the functionality of thread-based actors but do not incur the penalty of needing to be backed by a native thread.

Should you use a thread-based actor or an event-based actor in your Scala program? This is a case of implementation details (namely the JVM's lack of lightweight concurrency) creeping out into the language design. Projects like Kilim are trying to address lightweight concurrency on the JVM, and hopefully Scala will be able to leverage such a project in the future as the basis of its actor model and get rid of the threaded/evented gap, but for now Scala makes you choose.

Scala leaves you with three similar, overlapping constructs to choose from when modeling state, identity, and concurrency in programs: objects, event-based actors, and thread-based actors. Which should you choose?

Reia provides both objects and actors, but actors are there for edge cases and intended to be used almost exclusively by advanced programmers. Reia introduces a number of asynchronous concepts into its object model, and for that reason objects alone should suffice for most programmers, even when writing concurrent programs.

Advantages of Scala's approach

Reia's approach comes with a number of disadvantages, despite the theoretical benefits I've outlined above. For starters, Scala is a language built on the JVM, which is arguably the best language virtual machine available. Scala's sequential performance tops Erlang even if its performance in concurrent benchmarks typically lags behind.

Reia's main disadvantage is that its object model does not work like any other language in existence, unless you consider Erlang's approach an "object model". Objects, being a shared-nothing, individually garbage collected Erlang process, are much heavier (approximately 300 machine words at minimum) than objects in your typical object oriented language (where I hear some runtimes offer zero overhead objects, or something). Your typical "throw objects at the problem" programmer is going to build a system, and the more objects that are involved the more error prone it's going to become. Reia is a language which asks you to sit back for a second and ponder what can be modeled as possibly nested structures of lists, tuples, and maps instead of objects.

Reia does not allow cyclical call graphs, meaning that an object receiving a call cannot call another object earlier in the call graph. Instead, objects deeper in the call graph must interact with any previously called objects asynchronously. If your head is spinning now I don't blame you, and if you do understand what I'm talking about I cannot offer any solutions. Reia's call graphs must be acyclic, and I have no suggestions to potential Reia developers as to how to avoid this problem, besides being aware of the call flow and ensuring that all "back-calls" are done asynchronously. Cyclic call graphs result in a deadlock, one which can presently only be detected through timeouts, and remain a terrible pathological case. I really wish I could offer a better solution and I am eager if anyone can help me find a solution. This is far and away the biggest problem I have ever been faced with in Reia's object model and I am sad to say I do not have a good solution.

All that said, Scala's solution is so beautifully familiar! It works with the traditional OOP semantics of C++ which were carried over into Java, and this is what most OOP programmers are familiar with. I sometimes worry that the approach to OOP I am advocating in Reia will be rejected by developers who are familiar with the C++-inspired model, because Reia's approach is more complex and more confusing.

Furthermore, Scala's object model is not only familiar, it's extremely well-studied and well-optimized. The JVM provides immense capability to inline method calls, which means calls which span multiple objects can be condensed down to a single function call. This is because the Smalltalk-inspired illusion that these objects are receiving and sending messages is completely suspended, and objects are treated in C++-style as mere chunks of state, thus an inlined method call can act on many of them at once as if they were simple chunks of state. In Reia, all objects are concurrent, share no state, and can only communicate with messages. Inlining calls across objects is thoroughly impossible since sending messages in Reia is not some theoretical construct, it's what really happens and cannot simply be abstracted away into a function call which mutates the state of multiple objects. Each object is its own world and synchronizes with the outside by talking by sending other objects messages and waiting for their responses (or perhaps just sending messages to other objects then forgetting about it and moving on).

So why even bother?

Why even bother pursuing Reia's approach then, if it's more complex and slow? I think its theoretical purity offers many advantages. Synchronizing concurrency through the object model itself abstracts away a lot of complexity. Traditional object usage patterns in Reia (aside from cyclical call graphs) have traditional object behavior, but when necessary, objects can easily be made concurrent by using them asynchronously. Because of this, the programmer isn't burdened with deciding what parts of the system need to be sequential and what parts concurrent ahead of time. They don't need to rip out their obj.method() calls and replace them with WTFs!? when they need some part of the system they didn't initially anticipate to be concurrent. Programmers shouldn't even need to use actors directly unless they're implementing certain actor-specific behaviors, like FSMs (the 5% case Joe Armstrong was talking about).

Why build objects on actors?

Objects aren't something I really have a concrete, logical defense of, as opposed to a functional approach. To each their own is all I can say. Object oriented programming is something of a cargo cult... its enthusiasts give defenses which often apply equally to functional programming, especially functional programming with the actor model as in Erlang.

My belief is that if concurrent programming can be mostly abstracted to the level of objects themselves, a lot more people will be able to understand it. People understand objects and the separation of concerns which is supposedly implicit in their identities, but present thread-based approaches to concurrency just toss that out the window. The same problem is present in Scala: layering the actor model on top of an object system means you end up with a confusing upper layer which works kind of like objects, but not quite, and runs concurrently, while objects don't. When you want to change part of the system from an object into an actor, you have to rewrite it into actor syntax and change all your lovely dots into !?s?!

Building the object system on top of the actor model itself means objects become the concurrency primitive. There is no divorce between objects and actors. There is no divorce between objects, thread-based actors, and event-based actors as in Scala. In Reia objects are actors, speak a common protocol, and can handle the most common use cases.

When objects are actors, I think everything becomes a lot simpler.


1 – 200 of 239   Newer›   Newest»
Pichi said...

When I think about call graph problem I have though about one way of solution. When object process (actor) waits for result of call (request) it can accept another's object calls. When call comes it stores current state as some kind of "continuation", serve call and returns to "continuation" which hangs in receive clause again. It introduce some kind of process "stack" of "continuations". Hard thing comes how handle object "state" trough multiple "continuations" on "stack". It's big challenge

Same problem you can found with normal Erlang programing using gen_server or gen_fsm when your handler involves call to another gen_* process but Erlang system are usually designed to avoid this problem (for example using cast instead call).

Anyway I think OOP is broken by design ;-)

Tony said...

Reia has the equivalent of gen_server cast as well. The syntax is:

receiver<-method(arg1, arg2, ...)

It's still left as an exercise to the programmer to decide when to use calls and when to use casts. If you decide wrong, you risk deadlocking.

Tony said...

Also, I don't like "two process" solutions to handling "reentrant" calls to an object which is calling out elsewhere.

What do you do with the state? The caller has one copy... if you try to call it again the call will be handled by another process...

What if that process changes the state while the caller is still calling out? The caller is then working off a different copy of the state. You have two states, one from when it answered the first request, and one from the second. Which one should be the "new" state?

It just doesn't work that way, unfortunately.

Pichi said...

I don't like "two process" solution too.

About state:

All starts from main process. Object A is made in some state SA1. Object B is made in some state SB1. Main process calls method MA1 of object A and waits (receive) for response. In method handler of object A is state changed to SA2 and called method MB1 of object B (PID passed as argument of method) and waits (receive) for response. This receive is also able to handle another calls. In method MB1 of object B is changed state SB1 to SB2 and called method MA2 or MA1 but with another parameters which will not cause call to B again. Receive clause in object A will accept this call but fun goes here. Process of object A must store "continuation" (push on stack) where information about method MA1. Object A handles MA2 and changes to state SA3 and responses to object B and returns to "continuation" state but with state SA3. (I think it is way how object behaves in OOP. There is variant with state SA2 but I think it is wrong.) Object B changes state to SB3 and responses to object A. Object A receives response, continues in method MA1, changes state to SA4 and returns response to main process.

There is possible infinite loop but in same case as in classical OOP.

P.S.: I'm embarrassed when helping implement concept which I think is wrong ;-)

Pichi said...

I found above approach little bit confusing. In programmers point of view this can happen (Excuse I'm not familiar with Reia syntax)

class A:
  def MA1 (B):
    if a!=c then
      print "This can happen because any other method of A can be performed during B.MB1()!"

Funny, isn't it?

Unknown said...

For what I can infer about your comments, the actor model is embedded in the core of your language. Actors in Scala, on the other hand, are just a library implemented in Scala. The fact that they can be integrated seamlessly shows the power of Scala language. On the other hand, I think Scala is a general purpose language, I'll never try to do in Scala the things Erlang is desinged for.

Tony said...


I just submitted a writeup of what I believe your proposal to be to the Reia Google Group:

That might be a better place to continue this rather than my blog.

It is the most interesting proposal so far, and one I'm considering. I'm worried about how it muddies hidden state and allows for outside processes to cause side effects in the middle of method dispatch.

That said deadlocks are much worse.

James Iry said...

> Scala hybrid functional/imperative object/actor language

This is Scala's amazing strength - it fooled you! Scala is not an actor language any more than Java is. But it has a library that looks like a part of the language.

Otherwise, your comments are pretty much spot on. If you need to do hardcore concurrency and the Erlang ecosystem fits your needs, it's hard to do better than using the Erlang platform.

However, one quibble. Scala is hybrid "functional/imperative" exactly the same way Erlang, Scheme, Common Lisp, Clojure, SML, OCaml, and many others are. All of these are imperative in the way they deal with IO and other side effects like mutation.

Eric Samson said...

20 years ago I used to work on ActTalk, an Actor extension to Smalltalk. It had a nice and simple design. That was due to the highly dynamic capabilities of the Smalltalk language.

I wonder if we could do the same with Groovy today...

Unknown said...

Some time ago I adapted the actor system in Scala to be OO, it seems relevant to your post.

objactorsNot that I think that this (or actors in general) are a particularly good approach.

In my solution returning method calls are synchronous - if you want to respond asynchronously you have to call the caller.

Unknown said...

Hmm my link didn't seem to work properly. It's

Ricky Clarkson said...

You seem to be complaining about Scala actors, and the JVM's object model. Scala actors are just a library, and probably most Scala programmers don't use them. For Scala not to use the JVM's object model, it would have to sacrifice performance and reasonable Java compatibility.

Nirav Thaker said...

To your point

"One type of actor is based on native threads. However, native threads are substantially heavier than a lightweight Erlang process, limiting the number of thread-based actors you can create in Scala as compared to Erlang."

Why do you conclude every Java/Scala thread maps to Native thread? To my knowledge native threads are heavy weights in case of Linux and not for Windows (read Fibers) or other Flavours of Unix (Solaris maps Green user-space threads to native threads). Whenever I hear argument which results in "Let's Implement our own", I start to suspect suboptimality in approach, operating systems are best at what they do. Technically speaking, Your Erlang runtime will never execute in Kernel mode and it can't beat process scheduler performance. In such cases synchronous invocation is your best bet. However, I have to agree that a nonsense parameter to imply synchronous invocation doesn't sound like a rocket science feature in supporting distributed computing, it should be transparent to developer. Distributed programming semantics existed forever that did not introduce silly operators to indicate type of invocation(COM, RMI and whatnot). This is 21st century we want to free developers from thinking about distribution much less the programming language constructs to specify synchronous execution.

Unknown said...

> The WTF Operator
> response = receiver !? request

Don't forget that !? is a method call, not an operator because Scala has no operators (only methods). It's just that the dot and parens are optional. If the implementers of the actors library would have chosen a name other than !? for the method, it would look something like so:

response = receiver.sendSynchronous(request)
or equivalently
response = receiver sendSynchronous request

I guess they just opted for brevity.

ohhanibaek said...

Really we are given the good information on about article why u don't like Scala.nice explaination.
Scala Training in Hyderabad

Unknown said...

Thanks for the great content

You have interesting content and a good website
نرم افزار دیکشنری هوشیار ultimate 9
دانلود بازی DEAD TRIGGER v1.9.0 برای اندروید + نسخه پول بی نهایت
نکته مهم به هنگام خرید عینک آفتابی

Unknown said...

security system in delhi
cctv camera dealers in delhi
cp plus cctv camera online
hikvision camera online
cctv camera installation services in delhi
cctv camera installation services in gurugram
cctv camera installation services in gurgaon
cctv camera installation services in noida

progmars said...

I come from background of using C++, C#, PHP, JavaScript for different projects. I have also tried some Java and Objective-C for some months or so. Some projects were coded by me, some by my colleagues and some by third parties.

Wwe have to maintain those projects for long time and I have to switch among them to fix bugs for a few days or so. Thus for me (and also many project newcomers) mental switching both among paradigms and language syntax is a crucial skill.

It is easy to switch among C-like languages (except JavaScript and Objective-C for their unique concepts, such as prototypical OOP) and still feel mostly at home and be able to understand even badly written pieces of code without any comments.

Of course, after lots of switching your code starts losing language specifics and becomes some kind of "dumbed-down common ground" among all the languages you are using, but it gets things done and is easy to understand for beginners, which is great for large scale projects.

And then a few months ago I was assigned to maintain a Scala project. It was seemingly written by people who enjoy and leverage all the power of Scala but do not add any comments because for them, most probably, the code was "very much readable" as such. But my mind and eyes were completely boggled by those, Option, Some, Any, _, _.1, _.2, ->, => :: ...

It just takes so much more mental effort to untangle and debug a complex piece of Scala code that sometimes I preferred to rewrite it in Java - it worked and it was easy to read for everyone.

Sorry, Scala, you are just too awesome and complex for programmers who don't want (and are not paid) to become true Scala experts and have to maintain many projects in multiple C-like languages.

shabnam praveen said...

Call girls in Lucknow
Call girls in Guwahati
Call girls in Mumbai
Call girls in Jaipur
Call girls in Jaipur
Call girls in Jaipur
Call girls in Bangalore

Zubair Ismail said...

What do you say about using yowhatsapp download type app on scala? Can i host it on that site? I have seen many people getting their accounts shut down due to these kind of apps. Dont know why

Anonymous said...


dadyar said...

visit the best site mrdadyar

Nannie Co Pam said...

IEEE Project Domain management in software engineering is distinct from traditional project deveopment in that software projects have a unique lifecycle process that requires multiple rounds of testing, updating, and faculty feedback. A IEEE Domain project Final Year Projects for CSE system development life cycle is essentially a phased project model that defines the organizational constraints of a large-scale systems project. The methods used in a IEEE DOmain Project systems development life cycle strategy Project Centers in Chennai For CSE provide clearly defined phases of work to plan, design, test, deploy, and maintain information systems.

This is enough for me. I want to write software that anyone can use, and virtually everyone who has an internet connected device with a screen can use apps written in JavaScript. JavaScript Training in Chennai JavaScript was used for little more than mouse hover animations and little calculations to make static websites feel more interactive. Let’s assume 90% of all websites using JavaScript use it in a trivial way. That still leaves 150 million substantial JavaScript Training in Chennai JavaScript applications.

salma said...

اسعار كشف تسربات المياه بالرياض اسعار كشف تسربات المياه بالرياض

اسعار كشف تسربات المياه بالرياض اسعار كشف تسربات المياه بالرياض
شركة عزل فوم بجدة شركة عزل فوم بجدة
شركة عزل الفوم بالرياض

rima said...

siliguri escorts
siliguri escort
siliguri female escorts
siliguri escort service

siliguri escorts
siliguri escort
siliguri female escorts
siliguri escort service

siliguri escorts
siliguri escort
siliguri female escorts
siliguri escort service

siliguri escorts
siliguri escort
siliguri female escorts
siliguri escort service

siliguri escorts
siliguri escort
siliguri female escorts
siliguri escort service

s said...
This comment has been removed by the author.
apk mod said...

Ludo King MOD is a modified version of download ludo king game for pc, one of the best applications to play online ludo, a simpler version of Parcheesi on your Android

Richard Wagner said...

Hi there! thank you for this blog

check out the post right here

Luky*Sam said...

It's no wonder that in recent whatsapp plus became a huge part of our lives. It's conveyears nient quick and easy to use.

Exotic irfa said...

You can also visit Exotictechnews if you want to know everything about tech website and visit this site for getting information in Hindi You can also visit Cutehindi if you want to know everything in Hindi

nanna888 said...

Easy to bet Give the best price With free credits Here only m928bet one deposit - withdraw, convenient, fast, safe.

robertscherzer said...

Medical television shows suggest that a day in the life of a radiology tech is filled with dramatic developments as patients learn they have life-threatening diseases, but the reality is that most of the job involves adjusting precise machines to be able to pick up small details
aol mail login
grand Canyon University portal

Kaylee Brown said...

There are a variety of services offered by these websites and most of these sites offer programming assignment help for different concepts that come under programming. There is web development help, front end development, back end development, app development, HTML development, and many other services that students can avail of. Once they select the category they can select the date of delivery and confirm other details. Students will then be assigned with an expert who will offer help with programming and this expert will take over everything and make sure everything is completed perfectly.

Yogesh Singh said...

Now the people are worry about this topic Visit Here

Yogesh Singh said...

Give the one of the best article of the site Netflix Premium Apk

Yogesh Singh said...

Great oen of the best article of the site is that you can trust on thsi site Spotify Premium Apk

Yogesh Singh said...

Now the game is that you get the oenof the best thing that you information Walletbitcoinxpert

Yogesh Singh said...

Get the same thing is that you get the full information of teh site Dragon city Mod Apk

Yogesh Singh said...

Now the great new the main is launced EPSXe Apk

Rehan said...

Yeh Hai Chahatein writtenupdate brings latest written updates For You, written episodes, news, reviews, articles, and much more for Indian TV serials, Like Colors TV, Star Plus, Star Bharat, Zee Tv and more.

unknown said...

4K Video Downloader allows you to download motion pictures from a platform like Vimeo, YouTube, Dailymotion, Instagram, fb, Twitter, and other media so that you can watch them offline. you may additionally down load the video in 4k and 8k first-class. additionally, it lets in you to circulation online to MP4 and MP3. in case you are a track lover, it helps you down load the audio immediately from Sound Cloud so you can listen if you have no internet.

unknown said...

These blogs are high quality, So that they can take some time to approve the comment, It may be 3 to 4 days..

unknown said...

Great Do follow sites list you have shared, i added the comment on some blog but I not got instant approval..Comment has gone in moderation, can you let me know how much time these sites take to approve the comment..

unknown said...

You have really inspired me through your way of content representation. I have found here blog for blog commenting in all niche and helped me to get some quality link from blog commenting… Thanks

unknown said...
PyCharm Crack incorporates unique capabilities for the student to research Python. Many functions are clean to use. It offers all of the things that Python customers constantly need. It consists of many extra functions like remote development: it allows you to set up and debug python code, that is going for walks on a faraway system, digital machines, and Docker bins.

Techno Blogging said...

also download the latest Ludo King Mod Apk, picsart pro apk, And Hack App Data Pro free for your android devices.

unknown said...

I checked this internet site when i was going to down load today's software. This internet site provide all brand new software program. you could also take a look at this internet site. thanks!

Muzamil Ansari crack said...

Good blog here! Your website loads very fast! What is a host?
You are using; Can I find your affiliate link on your host?
I hope my site will load as fast as yours, lol.
adobe photo shop cc crack
emeditor professional crack
musify crack
bulk image downloader crack

Unknown said...

The world's most powerful combat helicopters are at your fingertips." Gunship Battle Mod Apk 70 million downloads!!! Become a helicopter pilot and engage in combat

Unknown said...

pyaar ke uss paar Watch Online All Indian TV Shows, Dramas, desi serials Reality Shows on Desi TV Box, Color TV and Zee TV brings latest episode watch live on our website. More information email us

Choi Dal-Po said...

Modified Apk for Ludo King 2021

Ludo King Mod Apk

Ludo King Mod Apk

Ludo King Mod Apk

Rozysharma said...

My Boy GBA Emulator is an emulator application My Boy pro mod apk is reliable and has been in operation since 2012. People believe and give it extremely positive comments on ...

U Know said...

Here is some magic. Teleserye gives you something that makes you feel at home and gives you the warmth of your home environment! Yes! We are talking about Filipino online programs.

U Know said...
This comment has been removed by the author.
U Know said...

Both networks are very sweet and beautiful on Pinoy Show in the Philippines. Pinoy TV shows have been updated according to the specific theme released on the official website and the videos are shared on the official website.

U Know said...

The Pinoy lambingan is a site where you can avail all the Pinoy Channel Teleserye and that for free.

U Know said...

The Pinoy lambingan is a site where you can avail all the Pinoy Channel Teleserye and that for free.

Michal Booster said...

Interventia lui clicksud regulilor clicksud pare sa fie un plan pus la cale de catre Firicel, este cel care il prinde in fapt pe acesta iar vestea data cum Giani nu mai are mult de trait pare sa fie un motiv pentru ca fiecare sa isi atribuie cate un bun de la acesta din casa, si pentru ca nu isi asuma fapta Nicu ii spune lui Robi ca are de gand sa il reclame direct la superiori iar daca nu are de gand sa renunte si sa aduca totul inapoi nu o sa-l ierte.

Random said...

Keep the great information in your blog thanks for sharing with Ludo King

Unknown said...

very beautifil site

Aerocity Service said...

Paharganj Escorts
Dwarka Escorts
Russian Escorts Noida
Russian Escorts Delhi
Karol Bagh escorts
Delhi Escorts Service
Escorts in Delhi
Call girls in Delhi
Delhi escort
Aerocity Escorts

$$$$ said...

Best Collection of Gujarati Ringtone for Gujarati ringtone lover.

$$$$ said...

Best Collection of Rajasthani Ringtone for Android And Iphone.

$$$$ said...

Get unlimited krishna Ringtone for free and download in one click no ads.

abbas said...

Thanks for the post. Very interesting post. This is my first time visit here. I found so many interesting stuff in your blog. Keep posting.. installaware-studio-admin-crack

$$$$ said...

download Krishna Flute Ringtone mp3 and new collection of hare krishna, radha krishna , basuri krishna ringtone download.

ahmed5090 said...

هل تعلم عن الورود هناك أكثر من 150 نوعًا من الورود مع الآلاف من السلالات الهجينة؟ تأتي الورود بأشكال وأحجام وألوان مختلفة. لا توجد طريقة واحدة محددة لتصنيف الورود، ولكن معظم المتخصصين يصنفها إلى: الورود البرية، ورود الحديقة القديمة، ورود الحديقة الحديثة.
باقة المشاهير

hyiptempo said...

Are you there for HYIP templates? GC Hyip Templates are also important to check out for quality scripts built on the PHP platform to develop a full-fledged website for the business and offer the best user interface to the visitors. The technical team of the responsive hyip template, HYIP website design , hyip customize and developers also ensure that unique hyip templates incorporate all the required features and tools to boost traffic to the website that can be converted into business leads in the future.

Unknown said...

Baburao Ganpatrao Apte said...

Click here To Get best Collection latest ringtones.

cricket updates said...

mulțumesc pentru actualizare. distribuiți un articol unic. împărtășim toate cele mai târzii subtitrate în română. ASK MANTIK INTIKAM.

š†αr said...

Watch Latest Web series for Free with No Ads Download from Just Now 2021 Latest Version.

Aryan said...

If You Want to Watch Premium Web series, Movies, Videos for Free then Just Download Vidmate Apk and Grab it for free So Click here to download

GBPLUS said...

Your post is very informative and effective. I got what I was looking for. Here to say thank you. Thanks for sharing OGWhatsApp valuable content. Keep sharing more and more.

Anonymous said...

This blog is an amazing blog, the contents here are always very educative and useful, the reason I make it my regular blog of visit.
Ahref code -

cricket updates said...

mulțumesc pentru actualizare. distribuiți un articol unic. împărtășim toate cele mai târzii subtitrate în română. Mostenirea.

Hunting geek said...

Thanks for the valuable article. Keep posting such informative material for your audience. Highly appreciate your efforts. Also, check out this Thop TV app for your Android which allows you to watch your favorite TV shows, and My talking angela mod apk for killing your spare time.

Awais Chughtai said...

Thanks for the valuable article. Keep posting such informative material for your audience. Highly appreciate your efforts.SolidWorks Premium

VerteleNovelasOnline said...

This is my first time going here and I am actually impressed to read everything in one place.
telenovelas online .

Windows Activator 2021 said...

This was an excellent article. Thank you for sharing it.
Cut2D Pro

immigration matters said...

Get Best Quality HYIP Templates in cheap price with life time support and updates. hyip templates Suitable for Investment Company

immigration matters said...

Get best quality cheap hyip templates and gc templates with unique HYIP template design gc hyip templates for making HYIP Website at affordable price.

Unknown said...

Thank you for your valuable information that you give us. Keep it up and share more articles like this.
ver telenovelas gratis online

Gumnaam said...

Today full Episode Online. Stay Tuned to Watch Latest episodes on Pinoy Channel TV Shows in Full HD. Today’s High-Quality Episode.Enjoy Your Episodes.

Gumnaam said...

Watch full Episode Online your favorite Shows on Pinoy Teleserye for free!

hyiptemplatesorg said...

This is one of the best website i have ever seen. . I visit regularly. Hope to have more quality items. Also I would like to share some information also. Check out clickfunnels

Ringtone Download said...

Hi friends my name shiv if you want to download any type of ringtone then you can download all new punjabi Mp3 ringtone, hindi Ringtone Download , devotional ringtone or say all type of ringtone from this website for absolutely free

Ringtone Download said...

Krishna flute Ringtone Download

Ringtone Download said...

Ringtone Download , devotional ringtone or say all type of ringtone from this website for absolutely free

babarrao said...

I personally use this application and have seen no flaws or concerns, thus I believe it is the greatest option.
I've discovered that having a wide range of language abilities and resources has been quite beneficial to me.
coolmuster pdf creator pro crack
easeus partition master crack
wifi password hacking software wifi hacker

G said...

Thank you for writing one of the best articles I have ever read. Your content is completely unique and different from other websites,.
Thank you for sharing and good luck with future comments.
snaptube crack
skinfiner crack
origin pro crack

Shoaib Amin said...

This is my lucky chance to call from a friend because he sees important information being shared on your site.
It is a good idea to read through your blog posts.
Thank you so much for thinking so much of readers like me and I wish you the best of success as a professional.
davinci resolve crack
astro vision lifesign horoscope crack
acoustica premium edition crack
ham radio deluxe activation key

seriesturcasgratis said...

Thank you for your valuable information that you give us. Keep it up and share more articles like this.

Cracked Softwares said...

Excellent post however I was wanting to know if you could
write a litte more on this topic? I’d be very
thankful if you could elaborate a little bit further.
Appreciate it! ITools 4 License Key

Crack Faqs said...

Really very nice information on this site. Thanks for sharing this nice information. I hope you'll continue to write like this in the future.
SAM Broadcaster

Ana Watson said...

Even though I am here for the first time, I am very impressed with your post. Thanks for sharing. Also try Roblox Mod Apk. said...

I hope this post is beneficial for viewers. Many thanks for the shared this informative and interesting post with us.

Softs 32 said...

All issues have been explained clearly and openly. I certainly found the presentation informative. I appreciate your site.
Many thanks for the shared this informative and interesting post with us

Revo Uninstaller Pro

gochi88 said...

Such an informative post I have ever read, thank you. Do you play Ludo King MOD APK?

Crackysofts said...

avast secureline license file
playstation 4 crack
m3 data recovery torrent
Thanks for this informative blog and forgiving us and the opportunity to share our views.

pcscrack said...

Great Blog Thanks For Sharing
isumsoft zip password refixer crack
tekken 7 crack and keygen


bagas31 said...

mIRC 7.67 Crack

Tally ERP 9 Crack

Coreldraw X6 Crack

MixPad Crack

VyprVPN Crack

Megha said...

Great article, thanks for this wonderful content!!
Ludo King apk mod
Dead target apk mod
Shadow fight 2 special edition apk mod
mini militia apk mod
Tutorials Boss

SR said...

Thanks for sharing this valuable piece of information

X said...

Urmariti pe site-ul Clicksud - Lumea ta digitala, insula iubirii online, in format HD, gratuit

Crackask said...

Your post style is super Awesome and unique from others I am visiting the page I like your style.
Website Ripper Copier

Anonymous said...

I think the website is great, looks wonderful and very easy to follow pinoyteleserye said...

It’s an amazing piece of writing designed for all the internet users; they will obtain advantage from it I am sure. teleseryetv

onlyblog said...

Nice Blog. Thanks for sharing with us. Such amazing information.

Why students should seek coaching and assignments help

Crack Faqs said...

You write in such an amazing style and I really enjoy visiting your website. I hope you'll continue to write like this in the future. adobe muse crack said...

I guess I am the only one who came here to share my very own experience. Guess what!? I am using my laptop for almost the past 2 years, but I had no idea of solving some basic issues. I do not know how to Download Cracked Application and install a crack pro software or any other basic crack version. I always rely on others to solve my basic issues. But thankfully, I recently visited a website named Download Full Crack Application! that has explained an easy way to install all all the crack software on windows and mac. So, if you are the same as me then must-visit place for you.

Dolby Access Crack
AutoCaD Crack
Driver easy crack
dEnigma Recovery Key
Tally ERP 9 Crack

pinoyflix said...

This is a great website with lots of useful and informative posts. Please keep posting more Pinoy HD Movies Replay

pinoyflix said...

Hello there! This is kind of off topic but I need some guidance from an established blog. Is it very difficult to set up your own to begin. Do you have any ideas or suggestions Pinoy Movies.

pinoyflix said...

Thank you for your valuable information that you give us. Keep it up and share more articles like this Pinoy Channel

pinoyflix said...

I am happy to find this post very useful for me, as it contains lot of information. I always prefer to read the quality content and this thing I found in you post. Thanks for sharing Pinoy Flix

pinoyflix said...

Wonderful submit, very informative. I ponder why the opposite experts of this sector do not realize this Pinoy1tv

pinoyflix said...

Thank you. I authentically greeting your way for writing an article. I safe as a majority loved it to my bookmark website sheet list and will checking rear quite than later Pinoy Tv Replay

pinoyflix said...

Only wanna input on few general things, The website layout is perfect, the written content is rattling superb Pinoy TV Channel

pinoyflix said...

I love this blog! your happiness that remains constant even if you are ill. what i always said do not lose stamina. your positivity is your strength that can fight your disease. you have to struggle with this condition for your entire life with your family Pinoyflix

pinoyflix said...

Very energetic post! Everyone is searching for the wonderful stuff pinoy tambayan

pinoyflix said...

Having read your article. I appreciate you are taking the time and the effort for putting this useful information together Pinoy Channel

pinoyflix said...

Daily I visit most of the web pages to get new stuff. But here I got something unique and informative Pinoy Tambayan

pinoyflix said...

Having read your article. I appreciate you are taking the time and the effort for putting this useful information together PinoyFlix

pinoyflix said...

Daily I visit most of the web pages to get new stuff. But here I got something unique and informative Pinoy TV,

pinoyflix said...

Really enjoyed your post! Keep up the good writing Teleserye Replay

pinoyflix said...

Definitely your all weblogs are helpful for me. I really enjoy a lot reading your all posts Pinoy Channel Replay

pinoyflix said...

Everything is very open with a really clear description of the issues. It was really informative. Your website is very helpful. Thank you for sharing Pinoy Lambingan

pinoyflix said...

Your post has been very nice. This post is very helpful for me. I usually visit your blog every day. After reading your post. Nice information for the post Pinoy TV

pinoyflix said...

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with extra information Pinoy Tv Replay

pinoyflix said...

I high appreciate this post. I think you’ve nailed it! would you mind updating your blog with more information Pinoy Lambingan

pinoyflix said...

I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post Pinoy Channel

pinoyflix said...

I have read so many articles and the blogs but your post is genuinely a good post. Keep it up Ofw Pinoy Tv.

pinoyflix said...

This is really a high quality content. Very helpful & informative Pinoy TV Replay

pinoyflix said...

Wonderful experience while reading your blog Pinoyflix

pinoyflix said...

Really enjoyed your post! Keep up the good writing Pinoy Teleserye

pinoyflix said...

This is such a nice article. Thank you so much for sharing your knowledge. Keep it up Pinoy Channel

pinoyflix said...

It’s such a great and useful piece of the information. I am very happy that you give precious time to us by sharing such a great information Pinoy Tv Replay

Lillian J. Turner said...

Nice Blog. Thanks for sharing with us. Such amazing information.

Everything you should know about Rankbrain in online marketing said...

I feel very grateful that I read this. It is very helpful and informative, and I learned a lot from it. Thanks for sharing.

Crack garden planner
Cubase Cracks
WPS Office Crack
Iboysoft Data Recovery Crack
Clean Master License Code

Ricky R said...

Thanks for sharing this info. Keep check this:

Hdpcgames said...

Most of the people who have used this software around the world love works of art. This software was released 29 years ago. It is the most powerful, innovative and creative feature that professionals need. Powerful design software built for photographers and artists. This pes 2021 Pc Game download Zbrush crack Download topaz studio 2 crack Download zbrush crack Download Airy Activation Code MAc Best Teenage Romance Movies scientific workplace 6 serial number launchbox download amtlib dll crack Download betternet crackis essentially designed for graphic designers. Adobe Photoshop CC is photo editing software designed for professionals and artist-designers. This software has a creative cloud service and creative tools to enhance your images. About this software, we provide information on the fact that it has many cutting-edge features and also get into learning applications with the learning panel. said...

I feel very grateful that I read this. It is very helpful and informative, and I learned a lot from it. Thanks for sharing.

maxbulk mailer 8.5 activation key
pano2vr export
acoustica mixcraft 4 crack
affinity photo windows free
avs to dvd converter free download
crack u

Softs 32 said...

Hello Dear, I love your site. Many thanks for the shared this informative and interesting post with us.
PassMoz LabWin

FarmDeamon said...

The #1 Tech blog with a team of 50 people, covering everything you can ask for, check out itsDailyTech

HowToCrack said...

Hello, Dear Thanks for sharing such great content with the US it’s really amazing content so please keep sharing. I also have something for you so please check out
Cinema 4D Ios Torrent MacOS

Technical Knowledge said...

Nice Post thank you very much for sharing such a useful information and will definitely saved and revisit your site and i have bookmarked to check out new things frm your post.
Data Science Course

sustoiy said...

Pinoy Flix is an Online Platform Where You Can Sit Back, Relax and Watch Your Favorite TV Shows Free

Rahman Khan said...

Apasa pe vizionează cel mai recent episod din in hd. Distribuim toate cele mai recente romaseriale pe site-ul nostru Clicksud. Vă permite să jucați și să vă bucurați de divertisment de la Clicksud.

Rahman Khan said...

Apasa pe vizionează cel mai recent episod din in hd. Distribuim toate cele mai recente romaseriale pe site-ul nostru Vă permite să jucați și să vă bucurați de divertisment de la Clicksud.

EDU said...

Very interesting blog and lot of the blogs we see these days don't provide anything that interests me but i am really interested in this one just thought I would post and let you know.
Data Science Training Institute in Noida

Klaus said...

Your Blog is awesome. Really appreciate your work!
Microsoft Word Crack is fantastic software for better business results. Provides the best services to its users.
It also has a simple and user-friendly interface. I have been using it for a long time and it is the best.
You can download it for free. said...

Nero TuneitUp Pro Full Español
bulk emailer 9 crack
download clo3d full crack
on1 photo 10 full
enscape kuyhaa

EDU said...

This is really nice which is really cool blog and you have really helped a lot of people who visit the blog and give them useful information.
Data Science Training in Noida

Unknown said...

Watch online Video for free. If you are interested in watching Turkish123 Dramas and Seasons and the Most Popular Series in English Subtitle then follow us and enjoy the best Turkish Series online.

Bhuvankumar said...

Very informative Blog! There is so much information here that can help thank you for sharing.
Data Analytics Training in Bangalore

Softs 32 said...

Hi dear,It is really enjoyable to visit your website because you have such an amazing writing style.
Minitool Partition Wizard Crack

Babyplanet321 said...

baby shop
baby shop
baby shop
baby shop
baby shop

Pinoy Tv said...
This comment has been removed by the author.
Ponzaar said...

İnstagram takipçi satın al! İnstagram takipçi sitesi ile takipçi satın al sende sosyal medyada fenomen olmaya bir adım at. Sende hemen instagram takipçi satın almak istiyorsan tıkla:

1- takipçi satın al

2- takipçi satın al

3- takipçi satın al

TopCrack said...

I have read this article. It is very well written. You can also check articles here Microsoft Activation Scripts Crack Key is also a good article. Give it a read.

TopCrack said...

This blog is very good. It is well written and amazing. You can also download Onesafe Data Recovery Professional v10.1.0.0 Crack which can prove to be very helpful.

English with Umar said...
This comment has been removed by the author.
Pinoy Tv said...
This comment has been removed by the author.
Ringbaba said...


Timm Jay said...

What a fantabulous post this has been. After a very long time i have seen this kind of useful post Teleserye. I am grateful to you and expect more number of posts like Pinoy Teleserye. Thank you very much for sharing Pinoy Flix, Pinoy Lambingan and Lambingan

Animeflv said...

animeyt2 web OFICIAL para ver Anime Online en HD, tenemos todos los animes, películas series y OVAs

insightech21 said...

I admire this article for the well-researched content and excellent wording. I got so involved in this material that I couldn’t stop reading. I am impressed with your work and skill. You can also check mine AnySQL Maestro Professional Crack

crackedfull said...

iMazing is that application that can manage your iPhone with proper ease. This tool is the most trusted one and is used by many professionals. It is not just for the “Technical People”, but can be used by simple users. It can also save musical data, messages, files, and various data. Moreover, this program can provide a safe backup. It is powerful and user-friendly.

crackedfull said...
This tool can keep messages in a great way. But also can save, export,
and print the user’s iPhone messages. Through the applicationI am read your blog.
Informative and interesting to see your blog.

pinoyflix said...

Watch your favourite Pinoy Teleserye, Pinoy Tambayan, Pinoy Channel, Teleserye Replay, PinoyFlix and Pinoy TV Shows online for free On Pinoy TV Replay.

Love Guru said...

Your article is interesting. I will definitely share it with my friends. Please visit my web site for game results.
Satta King 786

Antone Wyss said...

Everything is very open with a really clear description of the issues. It was really informative. Your website is very helpful. Thank you for sharing.

Read More:

pinoyflix said...

Great article with excellent idea! I have bookmarked your site since this site contains important data in it.Pinoy Teleserye

Go healthline said...

liked your website very much because I got the content of my choice, that's why I will keep visiting your blog daily. If you want to check my website, then you can check it from here
Thank you so much for the best post. If you are looking for the best post. You can enjoy the post from here.
PUBG Mobile Mod APK
Netflix MOD APK
Car Simulator 2 Mod APK
Youtube Premium MOD APK
YouTube Vanced MOD APK
GTA San Andreas Mod Apk

cafecrcak said...

AnyRail License KeyAnyRail Crack is amazing presentation creation software. With its help, you can create an interesting microclimate. You have an efficient stock of material to get the job done. GTA 5 Download

cafecrcak said...
This comment has been removed by the author.
Johnny Baba said...

I am facing problems in the graphic work and want its solution.

anonymous mouse said...

Controls are the best way to do various things in game. This magnificent game has simple controls where you can utilize the touchscreen of your gadget to utilize the controls. There are buttons on the screen and each button has various activities like pick, punch and battle. You can move the joystick to control your personality in game. Controls are completely upgraded and fastens will consequently change likewise to the screen size of your gadget.
Basic Graphics
The School Days game has basic illustrations which are completely advanced for low-end android gadgets. You can play the game at max throttle in light of straightforward and advanced illustrations. Enhanced visualizations and movements make the game really fascinating. Illustrations are basic since designers needed to make things look amusing in school. Engineers consistently send the updates to keep the game smooth.
Interesting Gameplay
You won't ever find such a game anyplace on the grounds that it is completely founded on school life which everybody needs to appreciate. Interactivity is so special and fun since you do different stuff at school. Partake in different school exercises. Bund classes and home base with companions to menace different understudies in game. Make companions in school and do counterfeit understudy love to reproduce any of your recollections connected with reality. This game is so fascinating and anybody can play for no particular reason.

Free Paid Games With APK Files said...

Outstanding job once again by you here, and this is exactly why I've always enjoyed your work with excellent writing abilities, which you demonstrate in every piece. Continue on!
Now I also want to contribute for peoples who don't know how to download paid games for free
simply download mod apks from the website for free without any cost
This trick is very simple and effective

yo-whatsapp said...

fouad whatsapp new version has customized features with which you are able to lots of things like, able to customize ‘who can call you, ‘who can message you, even you can customize your contacts profile pictures as well as status

FMWhatsappmod said...

Thanks for sharing such a great article, I am going to download fmwhatsapp apk this can be logged into two on the same device APK of an account to find my friends to share this high-quality article!

X-MEN said...

Hindi Ringtones Download
iPhone Ringtones

alex2220 said...

Do you know How to convertGoogle Sheets into PDFs

X-MEN said...

All New Collection of 2022 - Hindi Ringtones Download

Go healthline said...

liked your website very much because I got the content of my choice, that's why I will keep visiting your blog daily. If you want to check my website, then you can check it from here.
pubg mobile mod apk
Thoptv Mod APK
royal finger mehndi design
postknight 2 mod apk

Go healthline said...

Thank you so much for the best post. If you are looking for the best post. You can enjoy the post from here.
adv player mod apk
tally erp 9 educational version free download
worms zone mod apk

Go healthline said...

Thank you so much for the best post if you are looking for the net worth or want to know about the celebrity net worth. You can check the post. Celebrities have inspired a lot of people with their weight loss journeys. Check out these before-and-after photos of famous people who've lost significant amounts of weight over the years, starting with this actress
Joaquin Phoenix Weight Loss
Khloe Kardashian Weight Loss
billy gardell Weight Loss
rob Kardashian Weight Loss
Seth Rogen Weight Loss
Ashley Graham Weight Loss

Go healthline said...

Thank you so much for the best post if you are looking for the net worth or want to know about the Celebrity Net Worth. You can check the post.
Lebron James Net Worth

Free Paid Games With APK Files said...

Thanks a lot for sharing such great information with us
I also want to tell all of you about my experience
I face many issues while browsing then I download the latest version of VPN 

alex2220 said...

Microsoft Edge Canary

X-MEN said...

New Stuff of Tunes are Here !
Mp3 Ringtone Download
Ringtones Download 2022
Mp3 Ringtones

X-MEN said...

New Tones of Mp3 Mobile and IOS Devices -
Download Ringtones
All New Mp3 Ringtones
Ringtone Download
Premium Ringtone Download

john keats said...

snazzy information , very nice blog , thanks for sahring such a nice information , i take overview of your blog , this was very intresting . you can get more ideas from silimar web

License Pc said...

ApowerManager Activation Code for managing the number of files, messages, contact lists, videos, pictures, audio,Hide Me VPN License Key etc. Undoubtedly, it defines the best technique to move and remove unnecessary content and make SoundPad Serial Key your Android fast for the next job. There is enough capacity to manage the variety of devices Sibelius Crack without considering data loss issues.

Technology Blog Galaxy, where you can find every type of content on Tech said...

Excellent work done by you once again here and this is just the reason why I’ve always liked your work with amazing writing skills and you display them in every article. Keep it going!
The section about actors is just amazing, I want to add one more thing in this paragraph which actors look like after veneers.
This trend is increasing day by day in people.

License Pc said...
This comment has been removed by the author.
pinoy channel said...

Baaz said...

How to Activate Windows 10 Using Txt File
How to Activate Windows 10
Activate Windows 10
Windows 10 Activator New
Windows 10 Activator File

Projectors Point said...

On my site, Review the top Projectors todays in the market. In our top picked collection, we've picked featured products that meet to your budget and requirements.

Crack Repack said...

I am very happy to read this article. Thanks for giving us Amazing info. Fantastic post.
Thanks For Sharing such an informative article, Im taking your feed also, Thanks.character creator 3 torrent

«Oldest ‹Older   1 – 200 of 239   Newer› Newest»